Exit on SQL script failure

Added error handling to RunScript method
Exit on SQL script failure
Changed vefn_ChronologyReport
Changed how check for prior existence of rofst
This commit is contained in:
Rich
2013-02-08 23:47:21 +00:00
parent 7f58611e6b
commit 635b88de4d
5 changed files with 58 additions and 42 deletions

View File

@@ -311,8 +311,8 @@ namespace DataLoader
// if purge data, purge it all & reload folders & security.
if (MySettings.PurgeExistingData)
{
RunScript("BuildVEPROMS.Sql", "Master");
RunScript("PROMS2010.SQL", MySettings.DBName);
if(!RunScript("BuildVEPROMS.Sql", "Master")) return;
if(!RunScript("PROMS2010.SQL", MySettings.DBName)) return;
Status = "Purging Data";
ldr.ClearData();
Status = "Loading Folders";
@@ -368,16 +368,29 @@ namespace DataLoader
_MyLog.Fatal(ex.Message);
}
}
public void RunScript(string scriptName, string dbName)
public bool RunScript(string scriptName, string dbName)
{
bool ok = false;
Status = String.Format("Running Script '{0}'", scriptName);
string script = GetScript(scriptName);
script = script.Replace("{DBName}", MySettings.DBName);
script = script.Replace("{DBPath}", MySettings.DBPath);
SQLScriptRunner ssr = new SQLScriptRunner(script, MySettings.ConnectionString.Replace("{DBName}", dbName));
ssr.InfoMessage += new SQLScriptRunnerEvent(ssr_InfoMessage);
ssr.Run();
Status = String.Format("Script '{0}' Complete", scriptName);
try
{
ssr.Run();
Status = String.Format("Script '{0}' Complete", scriptName);
ok = true;
}
catch (Exception ex)
{
AddInfo("====****====");
AddError(ex, "While processing database {0}", dbName);
AddInfo("====****====");
Status = String.Format("Script '{0}' Failed", scriptName);
}
return ok;
}
private void Backup(string suffix)
{
@@ -798,14 +811,14 @@ namespace DataLoader
Backup("_" + MySettings.Phase2Suffix);
mb.Append("Phase 2 Backup Complete");
// Phase 3 - Convert to Change Manager Version
ConvertToChangeManager();
if(!ConvertToChangeManager()) return;
mb.Append("Conversion to Change Manager Complete");
Status = "Backing up Phase 3 Data";
Backup("_" + MySettings.Phase3Suffix);
mb.Append("Phase 3 Backup Complete");
//Phase 4 - Convert to Approval Version
ConvertToApproval();
FixProceduresAndFunctions();
if(!ConvertToApproval()) return;
if(!FixProceduresAndFunctions()) return;
mb.Append("Conversion to Approval Complete");
if (MySettings.LoadApproved)
{
@@ -828,13 +841,13 @@ namespace DataLoader
AddInfo(mb.ToString());
MessageBox.Show(mb.ToString(), "Processing Complete", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void ConvertToChangeManager()
private bool ConvertToChangeManager()
{
RunScript("PROMStoCM.sql", MySettings.DBName);
return RunScript("PROMStoCM.sql", MySettings.DBName);
}
private void ConvertToApproval()
private bool ConvertToApproval()
{
RunScript("PROMStoAPPR.sql", MySettings.DBName);
return RunScript("PROMStoAPPR.sql", MySettings.DBName);
}
private void formatOnlyToolStripMenuItem_Click(object sender, EventArgs e)
{
@@ -885,7 +898,7 @@ namespace DataLoader
private void convertToChangeManagerToolStripMenuItem_Click(object sender, EventArgs e)
{
ProcessTime = DateTime.Now;
ConvertToChangeManager();
if(!ConvertToChangeManager()) return;
MyInfo = "Conversion to Change Manager Complete";
if (MessageBox.Show("Backup Database?", "Backup", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
@@ -899,7 +912,7 @@ namespace DataLoader
private void convertToApprovalToolStripMenuItem_Click(object sender, EventArgs e)
{
ProcessTime = DateTime.Now;
ConvertToApproval();
if(!ConvertToApproval()) return;
MyInfo = "Conversion to Approval Complete";
if (MessageBox.Show("Backup Database?", "Backup", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
@@ -939,7 +952,7 @@ namespace DataLoader
}
private void fixesToolStripMenuItem_Click(object sender, EventArgs e)
{
FixProceduresAndFunctions();
if (!FixProceduresAndFunctions()) return;
if (MessageBox.Show("Backup Database?", "Backup", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
Status = "Backing up Data";
@@ -949,9 +962,9 @@ namespace DataLoader
//Status = "Processing Complete";
//MessageBox.Show("Fixed Stored Procedures", "Status", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void FixProceduresAndFunctions()
private bool FixProceduresAndFunctions()
{
RunScript("PROMSFixes.sql", MySettings.DBName);
return RunScript("PROMSFixes.sql", MySettings.DBName);
}
#endregion
#region Settings Menu Items
@@ -1021,19 +1034,9 @@ namespace DataLoader
int bad = 0;
foreach (string s in cms)
{
try
{
AddInfo("\r\nFixing database {0}\r\n", s);
RunScript("PROMSFixes.sql", s);
good++;
}
catch (Exception ex)
{
AddInfo("====****====");
AddError(ex, "While processing database {0}", s);
AddInfo("====****====");
bad++;
}
AddInfo("\r\nFixing database {0}\r\n", s);
if (RunScript("PROMSFixes.sql", s)) good++;
else bad++;
}
AddInfo("\r\nFixing databases complete. {0} Fixed, {1} Failures", good, bad);
Status = String.Format("Fixing databases complete. {0} Fixed, {1} Failures", good, bad);