mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-02-16 10:58:30 -05:00
Wait unit after query executes to change database (#222)
Change logic for database change so OnInfoMessage does not get called until after the query execution is complete. This prevents multiple calls to open a single DataReader.
This commit is contained in:
@@ -63,6 +63,11 @@ namespace Microsoft.SqlTools.ServiceLayer.QueryExecution
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private IFileStreamFactory streamOutputFactory;
|
private IFileStreamFactory streamOutputFactory;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Name of the new database if the database name was changed in the query
|
||||||
|
/// </summary>
|
||||||
|
private string newDatabaseName;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ON keyword
|
/// ON keyword
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -426,6 +431,11 @@ namespace Microsoft.SqlTools.ServiceLayer.QueryExecution
|
|||||||
sqlConn.GetUnderlyingConnection().InfoMessage -= OnInfoMessage;
|
sqlConn.GetUnderlyingConnection().InfoMessage -= OnInfoMessage;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (newDatabaseName != null)
|
||||||
|
{
|
||||||
|
ConnectionService.Instance.ChangeConnectionDatabaseContext(editorConnection.OwnerUri, newDatabaseName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -444,7 +454,7 @@ namespace Microsoft.SqlTools.ServiceLayer.QueryExecution
|
|||||||
// Did the database context change (error code 5701)?
|
// Did the database context change (error code 5701)?
|
||||||
if (error.Number == DatabaseContextChangeErrorNumber)
|
if (error.Number == DatabaseContextChangeErrorNumber)
|
||||||
{
|
{
|
||||||
ConnectionService.Instance.ChangeConnectionDatabaseContext(editorConnection.OwnerUri, conn.Database);
|
newDatabaseName = conn.Database;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user