mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-02-16 10:58:30 -05:00
Get SqlConnection from casting DbConnection
This commit is contained in:
@@ -359,14 +359,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection
|
|||||||
connectionBuilder["Initial Catalog"] = connectionDetails.DatabaseName;
|
connectionBuilder["Initial Catalog"] = connectionDetails.DatabaseName;
|
||||||
}
|
}
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,22 +138,26 @@ 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;
|
||||||
var displayInfoProvider = new MetadataDisplayInfoProvider();
|
if (sqlConn != null)
|
||||||
var metadataProvider = SmoMetadataProvider.CreateConnectedProvider(srvConn);
|
{
|
||||||
var binder = BinderProvider.CreateBinder(metadataProvider);
|
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,
|
LanguageService.Instance.ScriptParseInfoMap.Add(info.OwnerUri,
|
||||||
new ScriptParseInfo()
|
new ScriptParseInfo()
|
||||||
{
|
{
|
||||||
Binder = binder,
|
Binder = binder,
|
||||||
MetadataProvider = metadataProvider,
|
MetadataProvider = metadataProvider,
|
||||||
MetadataDisplayInfoProvider = displayInfoProvider
|
MetadataDisplayInfoProvider = displayInfoProvider
|
||||||
});
|
});
|
||||||
|
|
||||||
var scriptFile = WorkspaceService<SqlToolsSettings>.Instance.Workspace.GetFile(info.OwnerUri);
|
var scriptFile = WorkspaceService<SqlToolsSettings>.Instance.Workspace.GetFile(info.OwnerUri);
|
||||||
|
|
||||||
LanguageService.Instance.ParseAndBind(scriptFile, info);
|
LanguageService.Instance.ParseAndBind(scriptFile, info);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
@@ -147,7 +149,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.QueryExecution
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Service Mocking
|
#region Service Mocking
|
||||||
|
|
||||||
public static void GetAutoCompleteTestObjects(
|
public static void GetAutoCompleteTestObjects(
|
||||||
out TextDocumentPosition textDocument,
|
out TextDocumentPosition textDocument,
|
||||||
out ScriptFile scriptFile,
|
out ScriptFile scriptFile,
|
||||||
@@ -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);
|
||||||
@@ -176,9 +179,16 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.QueryExecution
|
|||||||
});
|
});
|
||||||
|
|
||||||
scriptFile = new ScriptFile();
|
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()
|
public static ConnectionDetails GetTestConnectionDetails()
|
||||||
{
|
{
|
||||||
return new ConnectionDetails
|
return new ConnectionDetails
|
||||||
|
|||||||
Reference in New Issue
Block a user