Exemple #1
0
        //internal bool IsCheckedOut()
        //{
        //    return !((File.Attributes & System.IO.FileAttributes.ReadOnly) == System.IO.FileAttributes.ReadOnly);
        //}

        void ExecuteProcs(string[] scripts)
        {
            SqlTransaction trans = null;
            string commandText = null;
            SqlConnection conn = new SqlConnection(Global.ConnectionString + ";Connection Timeout=0");
            try
            {
                conn.Open();
                trans = conn.BeginTransaction();
                
                for (int i=0;i<scripts.Count();i++)
                {
                    commandText = scripts[i];
                    if (commandText.Trim() != "")
                    {

						try
						{
							SqlCommand cmd = new SqlCommand(commandText, conn, trans);
							cmd.CommandTimeout = 0;
							cmd.ExecuteNonQuery();
						}
						catch (SqlException ex)
						{
							if (ex.Message.Contains("@WorkingDirectory"))
							{
								string workingDirectoryDef = "DECLARE @WorkingDirectory VARCHAR(MAX) SET @WorkingDirectory = '" + Directory.GetCurrentDirectory() + "' \r\n";
								var cmd2 = new SqlCommand(workingDirectoryDef + commandText, conn, trans);
								cmd2.CommandTimeout = 0;
								cmd2.ExecuteNonQuery();
							}
							else
							{
								throw ex;
							}
						}
                        
                    }
                }
                trans.Commit();
                
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                trans.Rollback();
                ScriptExecutionException scriptEx = new ScriptExecutionException(this, ex);
                ArrayList missingObjectNames = MissingObjectExceptionMessage.GetMissingObjectNames(ex.Message);
                if (missingObjectNames.Count == 0)
                {
                    LogTable.Write(this, Time.Now, "Failure: " + ex.ToString());
                    throw scriptEx;
                }
                else
                {
                    DependencyException depEx = new DependencyException(scriptEx);
                    foreach (string missingObjectName in missingObjectNames)
                    {
                        depEx.addDependency(missingObjectName);
                    }
                    throw depEx;
                }
            }
            finally
            {
                conn.Close();
            }
            LogTable.Write(this, Time.Now, "Success");
        }
Exemple #2
0
 private static void PrintUnhandledScriptException(bool verbose, ScriptExecutionException e)
 {
     Console.WriteLine("Terminating due to unhandled exception in the script file:");
     PrintException(verbose, e);
 }