mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-16 09:35:36 -05:00
Fixing the bug with connections on database make restore fail (#473)
* closing the connections that don't need to be open and keeping track of the connections that should stay open
This commit is contained in:
@@ -76,43 +76,15 @@ namespace Microsoft.SqlTools.ServiceLayer.TaskServices
|
||||
var currentExecutionMode = Server.ConnectionContext.SqlExecutionModes;
|
||||
try
|
||||
{
|
||||
|
||||
if (Server != null)
|
||||
{
|
||||
Server.ConnectionContext.CapturedSql.Clear();
|
||||
switch (mode)
|
||||
{
|
||||
case TaskExecutionMode.Execute:
|
||||
{
|
||||
Server.ConnectionContext.SqlExecutionModes = SqlExecutionModes.ExecuteSql;
|
||||
break;
|
||||
}
|
||||
case TaskExecutionMode.ExecuteAndScript:
|
||||
{
|
||||
Server.ConnectionContext.SqlExecutionModes = SqlExecutionModes.ExecuteAndCaptureSql;
|
||||
break;
|
||||
}
|
||||
case TaskExecutionMode.Script:
|
||||
{
|
||||
Server.ConnectionContext.SqlExecutionModes = SqlExecutionModes.CaptureSql;
|
||||
break;
|
||||
}
|
||||
}
|
||||
SetExecutionMode(mode);
|
||||
}
|
||||
|
||||
Execute();
|
||||
if (mode == TaskExecutionMode.Script || mode == TaskExecutionMode.ExecuteAndScript)
|
||||
{
|
||||
this.ScriptContent = GetScriptContent();
|
||||
if (SqlTask != null)
|
||||
{
|
||||
OnScriptAdded(new TaskScript
|
||||
{
|
||||
Status = SqlTaskStatus.Succeeded,
|
||||
Script = this.ScriptContent
|
||||
});
|
||||
}
|
||||
}
|
||||
GenerateScript(mode);
|
||||
|
||||
}
|
||||
catch
|
||||
{
|
||||
@@ -126,6 +98,44 @@ namespace Microsoft.SqlTools.ServiceLayer.TaskServices
|
||||
|
||||
}
|
||||
|
||||
protected void GenerateScript(TaskExecutionMode mode)
|
||||
{
|
||||
if (mode == TaskExecutionMode.Script || mode == TaskExecutionMode.ExecuteAndScript)
|
||||
{
|
||||
this.ScriptContent = GetScriptContent();
|
||||
if (SqlTask != null)
|
||||
{
|
||||
OnScriptAdded(new TaskScript
|
||||
{
|
||||
Status = SqlTaskStatus.Succeeded,
|
||||
Script = this.ScriptContent
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void SetExecutionMode(TaskExecutionMode mode)
|
||||
{
|
||||
switch (mode)
|
||||
{
|
||||
case TaskExecutionMode.Execute:
|
||||
{
|
||||
Server.ConnectionContext.SqlExecutionModes = SqlExecutionModes.ExecuteSql;
|
||||
break;
|
||||
}
|
||||
case TaskExecutionMode.ExecuteAndScript:
|
||||
{
|
||||
Server.ConnectionContext.SqlExecutionModes = SqlExecutionModes.ExecuteAndCaptureSql;
|
||||
break;
|
||||
}
|
||||
case TaskExecutionMode.Script:
|
||||
{
|
||||
Server.ConnectionContext.SqlExecutionModes = SqlExecutionModes.CaptureSql;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private string GetScriptContent()
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
Reference in New Issue
Block a user