diff --git a/src/Microsoft.SqlTools.ServiceLayer/Connection/ConnectionService.cs b/src/Microsoft.SqlTools.ServiceLayer/Connection/ConnectionService.cs index b6f7b17a..7a0593fb 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Connection/ConnectionService.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/Connection/ConnectionService.cs @@ -359,14 +359,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection connectionBuilder["Initial Catalog"] = connectionDetails.DatabaseName; } return connectionBuilder.ToString(); - } - - public static ServerConnection GetServerConnection(ConnectionInfo connection) - { - string connectionString = BuildConnectionString(connection.ConnectionDetails); - var sqlConnection = new SqlConnection(connectionString); - return new ServerConnection(sqlConnection); - } + } } } diff --git a/src/Microsoft.SqlTools.ServiceLayer/LanguageServices/AutoCompleteService.cs b/src/Microsoft.SqlTools.ServiceLayer/LanguageServices/AutoCompleteService.cs index 790e48b9..5abe27f7 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/LanguageServices/AutoCompleteService.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/LanguageServices/AutoCompleteService.cs @@ -5,7 +5,9 @@ using System; using System.Collections.Generic; +using System.Data.SqlClient; using System.Threading.Tasks; +using Microsoft.SqlServer.Management.Common; using Microsoft.SqlServer.Management.SmoMetadataProvider; using Microsoft.SqlServer.Management.SqlParser.Binder; using Microsoft.SqlServer.Management.SqlParser.Intellisense; @@ -136,22 +138,26 @@ namespace Microsoft.SqlTools.ServiceLayer.LanguageServices { if (!LanguageService.Instance.ScriptParseInfoMap.ContainsKey(info.OwnerUri)) { - var srvConn = ConnectionService.GetServerConnection(info); - var displayInfoProvider = new MetadataDisplayInfoProvider(); - var metadataProvider = SmoMetadataProvider.CreateConnectedProvider(srvConn); - var binder = BinderProvider.CreateBinder(metadataProvider); + var sqlConn = info.SqlConnection as SqlConnection; + if (sqlConn != null) + { + var srvConn = new ServerConnection(sqlConn); + var displayInfoProvider = new MetadataDisplayInfoProvider(); + var metadataProvider = SmoMetadataProvider.CreateConnectedProvider(srvConn); + var binder = BinderProvider.CreateBinder(metadataProvider); - LanguageService.Instance.ScriptParseInfoMap.Add(info.OwnerUri, - new ScriptParseInfo() - { - Binder = binder, - MetadataProvider = metadataProvider, - MetadataDisplayInfoProvider = displayInfoProvider - }); + LanguageService.Instance.ScriptParseInfoMap.Add(info.OwnerUri, + new ScriptParseInfo() + { + Binder = binder, + MetadataProvider = metadataProvider, + MetadataDisplayInfoProvider = displayInfoProvider + }); - var scriptFile = WorkspaceService.Instance.Workspace.GetFile(info.OwnerUri); - - LanguageService.Instance.ParseAndBind(scriptFile, info); + var scriptFile = WorkspaceService.Instance.Workspace.GetFile(info.OwnerUri); + + LanguageService.Instance.ParseAndBind(scriptFile, info); + } } }); } diff --git a/test/Microsoft.SqlTools.ServiceLayer.Test/QueryExecution/Common.cs b/test/Microsoft.SqlTools.ServiceLayer.Test/QueryExecution/Common.cs index 878073a0..9d2c1749 100644 --- a/test/Microsoft.SqlTools.ServiceLayer.Test/QueryExecution/Common.cs +++ b/test/Microsoft.SqlTools.ServiceLayer.Test/QueryExecution/Common.cs @@ -7,8 +7,10 @@ using System; using System.Collections.Generic; using System.Data; using System.Data.Common; +using System.Data.SqlClient; using System.Threading; using System.Threading.Tasks; +using Microsoft.SqlServer.Management.Common; using Microsoft.SqlServer.Management.SmoMetadataProvider; using Microsoft.SqlServer.Management.SqlParser.Binder; using Microsoft.SqlServer.Management.SqlParser.MetadataProvider; @@ -147,7 +149,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.QueryExecution #endregion #region Service Mocking - + public static void GetAutoCompleteTestObjects( out TextDocumentPosition textDocument, out ScriptFile scriptFile, @@ -162,7 +164,8 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.QueryExecution textDocument.Position.Character = 0; connInfo = Common.CreateTestConnectionInfo(null, false); - var srvConn = ConnectionService.GetServerConnection(connInfo); + + var srvConn = GetServerConnection(connInfo); var displayInfoProvider = new MetadataDisplayInfoProvider(); var metadataProvider = SmoMetadataProvider.CreateConnectedProvider(srvConn); var binder = BinderProvider.CreateBinder(metadataProvider); @@ -176,9 +179,16 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.QueryExecution }); scriptFile = new ScriptFile(); - 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() { return new ConnectionDetails