mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-16 17:23:38 -05:00
Update connection logic to handle multiple connections per URI (#176)
* Add CancelTokenKey for uniquely identifying cancelations of Connections associated with an OwnerUri and ConnectionType string. * Update ConnectionInfo to use ConcurrentDictionary of DbConnection instances. Add wrapper functions for the ConcurrentDictionary. * Refactor Connect and Disconnect in ConnectionService. * Update ConnectionService: Handle multiple connections per ConnectionInfo. Handle cancelation tokens uniquely identified with CancelTokenKey. Add GetOrOpenConnection() for other services to request an existing or create a new DbConnection. * Add ConnectionType.cs for ConnectionType strings. * Add ConnectionType string to ConnectParams, ConnectionCompleteNotification, DisconnectParams. * Update Query ExecuteInternal to use the dedicated query connection and GetOrOpenConnection(). * Update test library to account for multiple connections in ConnectionInfo. * Write tests ensuring multiple connections don’t create redundant data. * Write tests ensuring database changes affect all connections of a given ConnectionInfo. * Write tests for TRANSACTION statements and temp tables.
This commit is contained in:
@@ -19,8 +19,10 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.QueryExecution.DataSt
|
||||
private async Task<StorageDataReader> GetTestStorageDataReader(string query)
|
||||
{
|
||||
var result = await TestObjects.InitLiveConnectionInfo();
|
||||
DbConnection connection;
|
||||
result.ConnectionInfo.TryGetConnection(ConnectionType.Default, out connection);
|
||||
|
||||
var command = result.ConnectionInfo.SqlConnection.CreateCommand();
|
||||
var command = connection.CreateCommand();
|
||||
command.CommandText = query;
|
||||
DbDataReader reader = command.ExecuteReader();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user