Get SqlConnection from casting DbConnection

This commit is contained in:
Karl Burtram
2016-09-02 11:41:41 -07:00
parent 01039677c7
commit 1b7e27fe76
3 changed files with 34 additions and 25 deletions

View File

@@ -361,12 +361,5 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection
return connectionBuilder.ToString(); return connectionBuilder.ToString();
} }
public static ServerConnection GetServerConnection(ConnectionInfo connection)
{
string connectionString = BuildConnectionString(connection.ConnectionDetails);
var sqlConnection = new SqlConnection(connectionString);
return new ServerConnection(sqlConnection);
}
} }
} }

View File

@@ -5,7 +5,9 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data.SqlClient;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.SmoMetadataProvider; using Microsoft.SqlServer.Management.SmoMetadataProvider;
using Microsoft.SqlServer.Management.SqlParser.Binder; using Microsoft.SqlServer.Management.SqlParser.Binder;
using Microsoft.SqlServer.Management.SqlParser.Intellisense; using Microsoft.SqlServer.Management.SqlParser.Intellisense;
@@ -136,7 +138,10 @@ namespace Microsoft.SqlTools.ServiceLayer.LanguageServices
{ {
if (!LanguageService.Instance.ScriptParseInfoMap.ContainsKey(info.OwnerUri)) if (!LanguageService.Instance.ScriptParseInfoMap.ContainsKey(info.OwnerUri))
{ {
var srvConn = ConnectionService.GetServerConnection(info); var sqlConn = info.SqlConnection as SqlConnection;
if (sqlConn != null)
{
var srvConn = new ServerConnection(sqlConn);
var displayInfoProvider = new MetadataDisplayInfoProvider(); var displayInfoProvider = new MetadataDisplayInfoProvider();
var metadataProvider = SmoMetadataProvider.CreateConnectedProvider(srvConn); var metadataProvider = SmoMetadataProvider.CreateConnectedProvider(srvConn);
var binder = BinderProvider.CreateBinder(metadataProvider); var binder = BinderProvider.CreateBinder(metadataProvider);
@@ -153,6 +158,7 @@ namespace Microsoft.SqlTools.ServiceLayer.LanguageServices
LanguageService.Instance.ParseAndBind(scriptFile, info); LanguageService.Instance.ParseAndBind(scriptFile, info);
} }
}
}); });
} }

View File

@@ -7,8 +7,10 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data; using System.Data;
using System.Data.Common; using System.Data.Common;
using System.Data.SqlClient;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.SmoMetadataProvider; using Microsoft.SqlServer.Management.SmoMetadataProvider;
using Microsoft.SqlServer.Management.SqlParser.Binder; using Microsoft.SqlServer.Management.SqlParser.Binder;
using Microsoft.SqlServer.Management.SqlParser.MetadataProvider; using Microsoft.SqlServer.Management.SqlParser.MetadataProvider;
@@ -162,7 +164,8 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.QueryExecution
textDocument.Position.Character = 0; textDocument.Position.Character = 0;
connInfo = Common.CreateTestConnectionInfo(null, false); connInfo = Common.CreateTestConnectionInfo(null, false);
var srvConn = ConnectionService.GetServerConnection(connInfo);
var srvConn = GetServerConnection(connInfo);
var displayInfoProvider = new MetadataDisplayInfoProvider(); var displayInfoProvider = new MetadataDisplayInfoProvider();
var metadataProvider = SmoMetadataProvider.CreateConnectedProvider(srvConn); var metadataProvider = SmoMetadataProvider.CreateConnectedProvider(srvConn);
var binder = BinderProvider.CreateBinder(metadataProvider); var binder = BinderProvider.CreateBinder(metadataProvider);
@@ -179,6 +182,13 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.QueryExecution
scriptFile.ClientFilePath = textDocument.TextDocument.Uri; scriptFile.ClientFilePath = textDocument.TextDocument.Uri;
} }
public static ServerConnection GetServerConnection(ConnectionInfo connection)
{
string connectionString = ConnectionService.BuildConnectionString(connection.ConnectionDetails);
var sqlConnection = new SqlConnection(connectionString);
return new ServerConnection(sqlConnection);
}
public static ConnectionDetails GetTestConnectionDetails() public static ConnectionDetails GetTestConnectionDetails()
{ {
return new ConnectionDetails return new ConnectionDetails