/[AnywhereTS-MSSQL]/trunk/TSAdminTool/Database.cs
ViewVC logotype

Diff of /trunk/TSAdminTool/Database.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 86 by william, Fri Jul 13 02:21:43 2012 UTC revision 87 by william, Fri Jul 13 22:37:40 2012 UTC
# Line 8  using System.Text.RegularExpressions; Line 8  using System.Text.RegularExpressions;
8  using System.Management;  using System.Management;
9  using log4net;  using log4net;
10  using System.Security.Principal;  using System.Security.Principal;
11    using AnywhereTS.DBSupport;
12    
13  namespace AnywhereTS  namespace AnywhereTS
14  {  {
# Line 47  namespace AnywhereTS Line 48  namespace AnywhereTS
48          }          }
49          public bool SetupDatabase()          public bool SetupDatabase()
50          {          {
51                Exception ErrorInfo = null;
52              bool bContinue = false;              bool bContinue = false;
53              // Create a connection to SQL Server              // Create a connection to SQL Server
54                            
55              Logging.ATSAdminLog.Debug("SetupDatabase() called ");              Logging.ATSAdminLog.Debug("SetupDatabase() called ");
56              try              #region Database Creation support
57              {                              using (MsSqlConnector conn = new MsSqlConnector(Properties.Settings.Default.DBServer, Properties.Settings.Default.DBInstance, ATSGlobals.strDatabaseName))
                 sqlCon.ConnectionString = Properties.Settings.Default.atsConnectionString;                  
                 using (log4net.NDC.Push(string.Format("ConnectionString={0}", Properties.Settings.Default.atsConnectionString)))  
                 {  
                     Logging.ATSAdminLog.Debug(string.Format("Opening connection to {0} Database", ATSGlobals.strDatabaseName));  
                 }  
                 if (sqlCon.State != ConnectionState.Open) sqlCon.Open();  
             }  
             catch  
58              {              {
                 //MessageBox.Show(string.Format("Fail to connect to SQL Server Instance: {0}\n", InstanceName) + sql_ex.Number.ToString() + " " + sql_ex.Message.ToString());  
                 //return bContinue;  
                 //bCreateDB = true;  
59                  try                  try
60                  {                  {
61                      //using (log4net.NDC.Push(string.Format("SQL Statment={0}", SQLServerResources.CreateDatabase)))                      conn.CreateConnection(out ErrorInfo);
62                      //{                      conn.OpenConnection(out ErrorInfo);
                         Logging.ATSAdminLog.Debug(string.Format("Creating Database {0}", ATSGlobals.strDatabaseName));  
                         sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace(ATSGlobals.strDatabaseName, "master"));  
                         if (sqlCon.State != ConnectionState.Open) sqlCon.Open();  
                         RunScript(SQLServerResources.CreateDatabase);  
                         //RunScript(CreateDatabaseUserScript());  
                         sqlCon.Close();  
                     //}  
                     Logging.ATSAdminLog.Debug(string.Format("Created Database {0}", ATSGlobals.strDatabaseName));  
   
                     //using (log4net.NDC.Push(string.Format("SQL Statment={0}", SQLServerResources.CreateTables)))  
                     //{  
                         Logging.ATSAdminLog.Debug(string.Format("Creating Tables in {0} Database", ATSGlobals.strDatabaseName));  
                         sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace(ATSGlobals.strDatabaseName, "master"));  
                         if (sqlCon.State != ConnectionState.Open) sqlCon.Open();  
                         RunScript(SQLServerResources.CreateTables);  
                         //sqlCon.Close();  
                     //}  
                     Logging.ATSAdminLog.Debug(string.Format("Created Tables in {0} Database", ATSGlobals.strDatabaseName));  
63                  }                  }
64                  catch (SqlException sql_ex1)                  catch (Exception ex)
65                  {                  {
66                      SqlException sql_ex = (sql_ex1.GetBaseException() as SqlException);                      try
                     MessageBox.Show(string.Format("Failed to connect to SQL Server Instance: {0}\n", InstanceName) + sql_ex.Number.ToString() + " " + sql_ex.Message.ToString());  
   
                     using (log4net.NDC.Push(string.Format("SqlException: ID={0} MESSAGE={1}{2}Diagnostics:{2}{3}", sql_ex.Number.ToString(), sql_ex.Message, System.Environment.NewLine, sql_ex.ToString())))  
67                      {                      {
68                          Logging.ATSAdminLog.Error(string.Format("Failed to open connection to {0} Database", ATSGlobals.strDatabaseName));                          conn.Dispose();
69                            using (MsSqlConnector conn1 = new MsSqlConnector(Properties.Settings.Default.DBServer, Properties.Settings.Default.DBInstance, "master"))
70                            {
71                                try
72                                {
73                                    conn1.CreateConnection(out ErrorInfo);
74                                    conn1.OpenConnection(out ErrorInfo);
75    
76                                    // create datagbase
77                                    Logging.ATSAdminLog.Info(string.Format("Creating Database {0}", ATSGlobals.strDatabaseName));
78                                    RunScript(SQLServerResources.CreateDatabase, conn1, out ErrorInfo);
79                                    Logging.ATSAdminLog.Info(string.Format("Created Database {0}", ATSGlobals.strDatabaseName));
80    
81                                    // create tables
82                                    Logging.ATSAdminLog.Info(string.Format("Creating Tables in {0} Database", ATSGlobals.strDatabaseName));
83                                    RunScript(SQLServerResources.CreateTables, conn1, out ErrorInfo);
84                                    Logging.ATSAdminLog.Info(string.Format("Created Tables in {0} Database", ATSGlobals.strDatabaseName));
85                                }
86                                catch (Exception ex1)
87                                {
88                                    if (ErrorInfo == null) { ErrorInfo = new Exception(ex1.Message, ex); }
89                                }
90                            }
91                        }
92                        catch (Exception ex1)
93                        {
94                            if (ErrorInfo == null) { ErrorInfo = new Exception(ex1.Message, ex); }
95                      }                      }
                     return bContinue;  
96                  }                  }
97              }              }
98                        if (ErrorInfo != null) { return false; }
99                #endregion
100                #region Database version check
101              // Now that you are connected to Express, check the database versions              // Now that you are connected to Express, check the database versions
102              Version databaseVersion; // The current version of the database              Version databaseVersion; // The current version of the database
103              int chkVer = CheckVersion(out databaseVersion);              int chkVer = CheckVersion(out databaseVersion);
104              VersionCheck verChk = (VersionCheck)chkVer;              VersionCheck verChk = (VersionCheck)chkVer;
105              //MessageBox.Show(string.Format("Version Check: {0} Version: {1}", verChk.ToString(), databaseVersion.ToString()));              //MessageBox.Show(string.Format("Version Check: {0} Version: {1}", verChk.ToString(), databaseVersion.ToString()));
106              Logging.ATSAdminLog.DebugFormat("Version Check: {0} Version: {1}", verChk.ToString(), databaseVersion.ToString());              Logging.ATSAdminLog.InfoFormat("Database Version Check: {0} .... Database Version: {1}", verChk.ToString(), databaseVersion.ToString());
107              switch (chkVer)              switch (chkVer)
108              {              {
109                  case (int)VersionCheck.Equal:                  case (int)VersionCheck.Equal:
# Line 121  namespace AnywhereTS Line 118  namespace AnywhereTS
118                      }                      }
119                  case (int)VersionCheck.DatabaseIsOlder:                  case (int)VersionCheck.DatabaseIsOlder:
120                      {                      {
121                          switch (databaseVersion.ToString())                          using (MsSqlConnector conn = new MsSqlConnector(Properties.Settings.Default.DBServer, Properties.Settings.Default.DBInstance, ATSGlobals.strDatabaseName))
122                          {                          {
123                              // Run the apropriate upgdrade script(s)                              try
124                              case "1.0.0.0":                              {
125                                  {   // Current database is version 1.0.0.0, update to 1.0.0.1                                  conn.CreateConnection(out ErrorInfo);
126                                      Logging.ATSAdminLog.DebugFormat("Upgrading Database from version: {0} to version: {1}", "1.0.0.0", "1.0.0.1");                                  conn.OpenConnection(out ErrorInfo);
127                                      bContinue = RunScript(SQLServerResources.UpdateDatabase1);                                  #region database upggrade scripts
128                                      Logging.ATSAdminLog.DebugFormat("Upgraded Database from version: {0} to version: {1}", "1.0.0.0", "1.0.0.1");                                  switch (databaseVersion.ToString())
                                     goto case "1.0.0.1"; // Continue and upgrade one more step  
                                 }  
                             case "1.0.0.1":  
                                 {   // Current database is version 1.0.0.1, update to 1.0.0.2  
                                     Logging.ATSAdminLog.DebugFormat("Upgrading Database from version: {0} to version: {1}", "1.0.0.1", "1.0.0.2");  
                                     bContinue = RunScript(SQLServerResources.UpdateDatabase2);  
                                     Logging.ATSAdminLog.DebugFormat("Upgraded Database from version: {0} to version: {1}", "1.0.0.2", "1.0.0.2");  
                                     goto case "1.0.0.2"; // Continue and upgrade one more step  
                                 }  
                             case "1.0.0.2":  
                                 {   // Current database is version 1.0.0.2, update to 1.0.0.3  
                                     Logging.ATSAdminLog.DebugFormat("Upgrading Database from version: {0} to version: {1}", "1.0.0.2", "1.0.0.3");  
                                     bContinue = RunScript(SQLServerResources.UpdateDatabase3);  
                                     Logging.ATSAdminLog.DebugFormat("Upgraded Database from version: {0} to version: {1}", "1.0.0.2", "1.0.0.3");  
                                     goto case "1.0.0.3"; // Continue and upgrade one more step  
                                 }  
                             case "1.0.0.3":  
                                 {   // Current database is version 1.0.0.3, update to 1.0.0.4  
                                     Logging.ATSAdminLog.DebugFormat("Upgrading Database from version: {0} to version: {1}", "1.0.0.3", "1.0.0.4");  
                                     bContinue = RunScript(SQLServerResources.UpdateDatabase4);  
                                     Logging.ATSAdminLog.DebugFormat("Upgraded Database from version: {0} to version: {1}", "1.0.0.4", "1.0.0.4");  
                                     break;  
                                 }  
                             default:  
129                                  {                                  {
130                                      //MessageBox.Show("Error: Not able to upgrade database (51188)");                                      // Run the apropriate upgdrade script(s)
131                                      if (databaseVersion == new Version(0, 0, 0, 0))                                      case "1.0.0.0":
132                                      {                                          {   // Current database is version 1.0.0.0, update to 1.0.0.1
133                                          string format = string.Format("Database version is {0}, this should have been auto upgraded to {1}", databaseVersion.ToString(), ATSGlobals.strDatabaseVersion);                                              Logging.ATSAdminLog.InfoFormat("Upgrading Database from version: {0} to version: {1}", "1.0.0.0", "1.0.0.1");
134                                          Logging.ATSAdminLog.Fatal(format);                                              bContinue = RunScript(SQLServerResources.UpdateDatabase1, conn, out ErrorInfo);
135                                          MessageBox.Show(format);                                              Logging.ATSAdminLog.InfoFormat("Upgraded Database from version: {0} to version: {1}", "1.0.0.0", "1.0.0.1");
136                                      }                                              goto case "1.0.0.1"; // Continue and upgrade one more step
137                                      else                                          }
138                                      {                                      case "1.0.0.1":
139                                          string format = string.Format("Failed to upgrade Database from version: {0} to version: {1}", databaseVersion.ToString(), ATSGlobals.strDatabaseVersion);                                          {   // Current database is version 1.0.0.1, update to 1.0.0.2
140                                          Logging.ATSAdminLog.Fatal(format);                                              Logging.ATSAdminLog.InfoFormat("Upgrading Database from version: {0} to version: {1}", "1.0.0.1", "1.0.0.2");
141                                          MessageBox.Show(format);                                              bContinue = RunScript(SQLServerResources.UpdateDatabase2, conn, out ErrorInfo);
142                                      }                                                                                  Logging.ATSAdminLog.InfoFormat("Upgraded Database from version: {0} to version: {1}", "1.0.0.2", "1.0.0.2");
143                                      break;                                              goto case "1.0.0.2"; // Continue and upgrade one more step
144                                            }
145                                        case "1.0.0.2":
146                                            {   // Current database is version 1.0.0.2, update to 1.0.0.3
147                                                Logging.ATSAdminLog.InfoFormat("Upgrading Database from version: {0} to version: {1}", "1.0.0.2", "1.0.0.3");
148                                                bContinue = RunScript(SQLServerResources.UpdateDatabase3, conn, out ErrorInfo);
149                                                Logging.ATSAdminLog.InfoFormat("Upgraded Database from version: {0} to version: {1}", "1.0.0.2", "1.0.0.3");
150                                                goto case "1.0.0.3"; // Continue and upgrade one more step
151                                            }
152                                        case "1.0.0.3":
153                                            {   // Current database is version 1.0.0.3, update to 1.0.0.4
154                                                Logging.ATSAdminLog.InfoFormat("Upgrading Database from version: {0} to version: {1}", "1.0.0.3", "1.0.0.4");
155                                                bContinue = RunScript(SQLServerResources.UpdateDatabase4, conn, out ErrorInfo);
156                                                Logging.ATSAdminLog.InfoFormat("Upgraded Database from version: {0} to version: {1}", "1.0.0.4", "1.0.0.4");
157                                                break;
158                                            }
159                                        default:
160                                            {
161                                                //MessageBox.Show("Error: Not able to upgrade database (51188)");
162                                                if (databaseVersion == new Version(0, 0, 0, 0))
163                                                {
164                                                    string format = string.Format("Database version is {0}, this should have been auto upgraded to {1}", databaseVersion.ToString(), ATSGlobals.strDatabaseVersion);
165                                                    Logging.ATSAdminLog.Fatal(format);
166                                                    MessageBox.Show(format);
167                                                }
168                                                else
169                                                {
170                                                    string format = string.Format("Failed to upgrade Database from version: {0} to version: {1}", databaseVersion.ToString(), ATSGlobals.strDatabaseVersion);
171                                                    Logging.ATSAdminLog.Fatal(format);
172                                                    MessageBox.Show(format);
173                                                }
174                                                break;
175                                            }
176                                  }                                  }
177    #endregion
178                                }
179                                catch (Exception ex)
180                                {
181                                    if (ErrorInfo == null) { ErrorInfo = ex; }
182                                }                            
183                          }                          }
184                          break;                          break;
185                      }                      }
# Line 184  namespace AnywhereTS Line 195  namespace AnywhereTS
195                      }                      }
196    
197              }              }
198                #endregion
199              sqlCon.Close();              sqlCon.Close();
200              sqlCon.Dispose();              sqlCon.Dispose();
201              sqlCmd.Connection.Close();              sqlCmd.Connection.Close();
202              sqlCmd.Connection.Dispose();              sqlCmd.Connection.Dispose();
203              return bContinue;              return bContinue;
204          }          }
205            
206          // Run a SQL script (to create or update a database)          // Run a SQL script (to create or update a database)
207            [Obsolete("RunScript(string strFile) is being replaced by RunScript(string strFile, MsSqlConnector con, out Exception ErrorInfo)", false)]
208          public bool RunScript(string strFile)          public bool RunScript(string strFile)
209          {          {
210              string[] strCommands;              return false;
             strCommands = ParseScriptToCommands(strFile);  
             try  
             {  
                 if (sqlCon.State != ConnectionState.Open) sqlCon.Open();  
                   
                 sqlCmd.Connection = sqlCon;  
   
                 foreach (string strCmd in strCommands)  
                 {  
                     if (strCmd.Length > 0)  
                     {  
                         // Substitute database directory with the decided one.  
                         sqlCmd.CommandText = strCmd.Replace("[DataDir]",ProSupport.strDatabasePath);  
                         sqlCmd.ExecuteNonQuery();  
                     }  
                 }  
             }  
             catch (SqlException sql_ex)  
             {                
                 MessageBox.Show(sql_ex.Number.ToString() + " " + sql_ex.Message.ToString());  
                 using (log4net.NDC.Push(string.Format("SqlException: ID={0} MESSAGE={1}{2}Diagnostics:{2}{3}", sql_ex.Number.ToString(), sql_ex.Message, System.Environment.NewLine, sql_ex.ToString())))  
                 {  
                     Logging.ATSAdminLog.Error("Failed to RunScript");  
                 }  
                 return false;  
             }  
   
             return true;  
211          }          }
212            public bool RunScript(string strFile, MsSqlConnector con, out Exception ErrorInfo)
   
         private string CreateDatabaseUserScript()  
213          {          {
214              //Logging.ATSAdminLog.Debug("CreateDatabaseUserScript() called");              ErrorInfo = null;
215              //Logging.ATSAdminLog.Debug("Creating Database User Update Script");              string cmd = strFile.Replace("[DataDir]", ProSupport.strDatabasePath);
216              //StringBuilder builder = new StringBuilder();              con.RunScript(cmd, out ErrorInfo);
217              /*                          return false;
                 -- Create user windows Authentication  
                 CREATE LOGIN [YourDomainName\JohnJacobs] FROM WINDOWS  
                 WITH DEFAULT_DATABASE = [YourDatabaseHere];  
                 GO  
                 -- Now add user to database  
                 USE YourDatabaseHere;  
                 CREATE USER JohnJacobs FOR LOGIN [YourDomainName\JohnJacobs];  
              */  
             //builder.AppendLine("-- Create user windows Authentication");  
             ////builder.AppendLine(string.Format("CREATE LOGIN [{0}] FROM WINDOWS", GetImpersonatedUser()));  
             ////builder.AppendLine(string.Format("WITH DEFAULT_DATABASE = [{0}];", "AnywhereTS"));  
             //builder.AppendLine("GO");  
             //builder.AppendLine(string.Format(" -- Now add user to database"));  
             //builder.AppendLine(string.Format(" USE {0};", "AnywhereTS"));  
             //builder.AppendLine(string.Format(" CREATE USER [{0}] FOR LOGIN [{0}]",WindowsIdentity.GetCurrent().Name));  
             // WindowsIdentity.GetCurrent().Name.Substring(WindowsIdentity.GetCurrent().Name.LastIndexOf(@"\")+1)  
             //builder.AppendLine("GO");  
             //builder.AppendLine(string.Format(" USE {0};", "AnywhereTS"));  
             //builder.AppendLine(string.Format("exec sp_changedbowner [{0}]", WindowsIdentity.GetCurrent().Name));  
             //builder.AppendLine(string.Format("exec sp_changeobjectowner [{0}]", WindowsIdentity.GetCurrent().Name));  
             //using (log4net.NDC.Push(string.Format("CreateDatabaseUserScript() called")))  
             //{  
             //    using (log4net.NDC.Push(string.Format("script={0}", builder.ToString())))  
             //    {  
             //        Logging.ATSAdminLog.Debug("Created Database User Update Script");  
             //    }  
             //}  
             //return builder.ToString();  
   
             return string.Empty;  
218          }          }
   
219          // Check the version of the datbase          // Check the version of the datbase
220          public int CheckVersion(out Version vDb)          public int CheckVersion(out Version vDb)
221          {          {
222                Exception ErrorInfo = null;
223              //Get Version information from application              //Get Version information from application
224              Version v=new Version(ATSGlobals.strDatabaseVersion);              Version v=new Version(ATSGlobals.strDatabaseVersion);
225              vDb = new Version("0.0.0.0"); // Assign a default value for version              vDb = new Version("0.0.0.0"); // Assign a default value for version
226              try              try
227              {              {
228    
229                  string strResult;                  //string strResult;
230    
231                    int db_count = -1;
232                  //Verify that the AnywhereTS database exists                  //Verify that the AnywhereTS database exists
233                    #region Get Database Count
234                    using (MsSqlConnector conn = new MsSqlConnector(Properties.Settings.Default.DBServer, Properties.Settings.Default.DBInstance, ATSGlobals.strDatabaseName))
235                    {
236                        try
237                        {
238                            conn.CreateConnection(out ErrorInfo);
239                            conn.OpenConnection(out ErrorInfo);
240    
241                            //Logging.ATSAdminLog.Debug(string.Format("Getting Coount of {0} databases", ATSGlobals.strDatabaseName));
242    
243                  using (log4net.NDC.Push(string.Format("SQL STATMENT={0}", string.Format("select count(*) from master..sysdatabases where name='{0}'", ATSGlobals.strDatabaseName))))                          SqlCommand cmd = conn.CreateCommandInstance(string.Format("select count(*) from master..sysdatabases where name='{0}'", ATSGlobals.strDatabaseName), new List<SqlParameter>(), out ErrorInfo);
244                            db_count = Convert.ToInt32(cmd.ExecuteScalar());
245    
246                            Logging.ATSAdminLog.Info(string.Format("Found {0} databases named {1}", db_count, ATSGlobals.strDatabaseName));
247                        }
248                        catch (Exception ex)
249                        {
250                            if (ErrorInfo == null)
251                            {
252                                ErrorInfo = ex;
253                                using (log4net.NDC.Push(string.Format("{0}: MESSAGE={1}{2}Diagnostics:{2}{3}", ex.GetType().Name, ex.Message, System.Environment.NewLine, ex.ToString())))
254                                {
255                                    Logging.DatabaseLog.Error(string.Format("Failed to get count of databases named: {0}{1}", System.Environment.NewLine, ATSGlobals.strDatabaseName));
256                                }
257                            }
258                            else
259                            {
260                                ErrorInfo = ex.GetBaseException();
261                                using (log4net.NDC.Push(string.Format("{0}: MESSAGE={1}{2}Diagnostics:{2}{3}", ErrorInfo.GetType().Name, ErrorInfo.Message, System.Environment.NewLine, ErrorInfo.ToString())))
262                                {
263                                    Logging.DatabaseLog.Error(string.Format("Failed to get count of databases named: {0}{1}", System.Environment.NewLine, ATSGlobals.strDatabaseName));
264                                }
265                            }
266                        }
267                    }
268                    #endregion
269                    if (db_count == -1)
270                  {                  {
271                      Logging.ATSAdminLog.Debug(string.Format("Getting Coount of {0} databases", ATSGlobals.strDatabaseName));                      return (int)VersionCheck.Failed;
                     if (sqlCon.State != ConnectionState.Open) sqlCon.Open();  
                     sqlCmd = new SqlCommand(string.Format("select count(*) from master..sysdatabases where name='{0}'", ATSGlobals.strDatabaseName), sqlCon);  
                     strResult = sqlCmd.ExecuteScalar().ToString();  
272                  }                  }
273                  Logging.ATSAdminLog.DebugFormat(string.Format("{0} databases Count={1}", ATSGlobals.strDatabaseName, strResult));                  else if (db_count == 0)
   
                 if (strResult == "0")  
274                  {                  {
275    
276                        #region database does not exist
277                      //using (log4net.NDC.Push(string.Format("SQL Statment={0}", SQLServerResources.CreateDatabase)))                      //using (log4net.NDC.Push(string.Format("SQL Statment={0}", SQLServerResources.CreateDatabase)))
278                      //{                      //{
279                          Logging.ATSAdminLog.Debug(string.Format("Creating Database {0} in CheckVersion()", ATSGlobals.strDatabaseName));                      Logging.ATSAdminLog.Debug(string.Format("Creating Database {0} in CheckVersion()", ATSGlobals.strDatabaseName));
280                          sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace(ATSGlobals.strDatabaseName, "master"));                      sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace(ATSGlobals.strDatabaseName, "master"));
281                          if (sqlCon.State != ConnectionState.Open) sqlCon.Open();                      if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
282                          RunScript(SQLServerResources.CreateDatabase);                      RunScript(SQLServerResources.CreateDatabase);
283                          //RunScript(CreateDatabaseUserScript());                      //RunScript(CreateDatabaseUserScript());
284                          sqlCon.Close();                      sqlCon.Close();
285                      //}                      //}
286                      Logging.ATSAdminLog.Debug(string.Format("Created Database {0} in CheckVersion()",ATSGlobals.strDatabaseName));                      Logging.ATSAdminLog.Debug(string.Format("Created Database {0} in CheckVersion()", ATSGlobals.strDatabaseName));
287    
288                      //using (log4net.NDC.Push(string.Format("SQL Statment={0}", SQLServerResources.CreateTables)))                      //using (log4net.NDC.Push(string.Format("SQL Statment={0}", SQLServerResources.CreateTables)))
289                      //{                      //{
290                          Logging.ATSAdminLog.Debug(string.Format("Creating Tables in {0} Database in CheckVersion()", ATSGlobals.strDatabaseName));                      Logging.ATSAdminLog.Debug(string.Format("Creating Tables in {0} Database in CheckVersion()", ATSGlobals.strDatabaseName));
291                          sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace(ATSGlobals.strDatabaseName, "master"));                      sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace(ATSGlobals.strDatabaseName, "master"));
292                          if (sqlCon.State != ConnectionState.Open) sqlCon.Open();                      if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
293                          RunScript(SQLServerResources.CreateTables);                      RunScript(SQLServerResources.CreateTables);
294                          sqlCon.Close();                      sqlCon.Close();
295                      //}                      //}
296                      Logging.ATSAdminLog.Debug(string.Format("Created Tables in {0} Database in CheckVersion()", ATSGlobals.strDatabaseName));                      Logging.ATSAdminLog.Debug(string.Format("Created Tables in {0} Database in CheckVersion()", ATSGlobals.strDatabaseName));
297                        #endregion
298                  }                  }
299                  try  
300                  {                  
301                      //using (log4net.NDC.Push(string.Format("SQL Statment={0}", "SELECT value from {0}..AppInfo where property='version'", ATSGlobals.strDatabaseName)))                  #region Get Database Version
302                      //{                  using (MsSqlConnector conn = new MsSqlConnector(Properties.Settings.Default.DBServer, Properties.Settings.Default.DBInstance, ATSGlobals.strDatabaseName))
                         Logging.ATSAdminLog.Debug(string.Format("Getting {0} Database Version#1", ATSGlobals.strDatabaseName));  
                         sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace(ATSGlobals.strDatabaseName, "master"));  
                         if (sqlCon.State != ConnectionState.Open) sqlCon.Open();  
                         sqlCmd = new SqlCommand(string.Format("SELECT value from {0}..AppInfo where property='version'",ATSGlobals.strDatabaseName), sqlCon);  
                         strResult = (string)sqlCmd.ExecuteScalar();  
                         sqlCon.Close();  
                     //}  
                     Logging.ATSAdminLog.DebugFormat("{0} database version={1}",ATSGlobals.strDatabaseName, strResult);  
                 }  
                 catch(SqlException ex)  
303                  {                  {
                     // the database exists, but one or more tables are missing  
                     using (log4net.NDC.Push(string.Format("SqlException: ID={0} MESSAGE={1}{2}Diagnostics:{2}{3}", ex.Number.ToString(), ex.Message, System.Environment.NewLine, ex.ToString())))  
                     {  
                         Logging.ATSAdminLog.Error("Failed to get database version");  
                     }  
304                      try                      try
305                      {                      {
306                            conn.CreateConnection(out ErrorInfo);
307                            conn.OpenConnection(out ErrorInfo);
308    
309                          //using (log4net.NDC.Push(string.Format("SQL Statment={0}", SQLServerResources.CreateTables)))                          //Logging.ATSAdminLog.Debug(string.Format("Getting Coount of {0} databases", ATSGlobals.strDatabaseName));
                         //{  
                             Logging.ATSAdminLog.Debug(string.Format("Creating Tables in {0} Database in CheckVersion()", ATSGlobals.strDatabaseName));  
                             sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace(ATSGlobals.strDatabaseName, "master"));  
                             if (sqlCon.State != ConnectionState.Open) sqlCon.Open();  
                             RunScript(SQLServerResources.CreateTables);  
                             sqlCon.Close();  
                         //}  
                         Logging.ATSAdminLog.Debug(string.Format("Created Tables in {0} Database in CheckVersion()", ATSGlobals.strDatabaseName));  
310    
311                          using (log4net.NDC.Push(string.Format("SQL Statment={0}", string.Format("SELECT value from {0}..AppInfo where property='version'", ATSGlobals.strDatabaseName))))                          SqlCommand cmd = conn.CreateCommandInstance(string.Format("SELECT value from {0}..AppInfo where property='version'", ATSGlobals.strDatabaseName), new List<SqlParameter>(), out ErrorInfo);
312                          {                          string version = (string)cmd.ExecuteScalar();
313                              Logging.ATSAdminLog.Debug(string.Format("Getting {0} Database Version#2", ATSGlobals.strDatabaseName));                          vDb = new Version(version);
314                              sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace(ATSGlobals.strDatabaseName, "master"));                          Logging.ATSAdminLog.Info(string.Format("Database {0} is at Version: {1}", ATSGlobals.strDatabaseName, version));
                             if (sqlCon.State != ConnectionState.Open) sqlCon.Open();  
                             sqlCmd = new SqlCommand(string.Format("SELECT value from {0}..AppInfo where property='version'", ATSGlobals.strDatabaseName), sqlCon);  
                             strResult = (string)sqlCmd.ExecuteScalar();  
                             sqlCon.Close();  
                         }  
                         Logging.ATSAdminLog.DebugFormat("{0} database version={1}",ATSGlobals.strDatabaseName, strResult);  
315                      }                      }
316                      catch(SqlException ex1)                      catch (Exception ex)
317                      {                      {
318                          using (log4net.NDC.Push(string.Format("SqlException: ID={0} MESSAGE={1}{2}Diagnostics:{2}{3}", ex1.Number.ToString(), ex1.Message, System.Environment.NewLine, ex1.ToString())))                          if (ErrorInfo == null)
319                          {                          {
320                              Logging.ATSAdminLog.Error("Failed to get database version");                              ErrorInfo = ex;
321                                using (log4net.NDC.Push(string.Format("{0}: MESSAGE={1}{2}Diagnostics:{2}{3}", ex.GetType().Name, ex.Message, System.Environment.NewLine, ex.ToString())))
322                                {
323                                    Logging.DatabaseLog.Error(string.Format("Failed to get count of databases named: {0}{1}", System.Environment.NewLine, ATSGlobals.strDatabaseName));
324                                }
325                            }
326                            else
327                            {
328                                ErrorInfo = ex.GetBaseException();
329                                using (log4net.NDC.Push(string.Format("{0}: MESSAGE={1}{2}Diagnostics:{2}{3}", ErrorInfo.GetType().Name, ErrorInfo.Message, System.Environment.NewLine, ErrorInfo.ToString())))
330                                {
331                                    Logging.DatabaseLog.Error(string.Format("Failed to get count of databases named: {0}{1}", System.Environment.NewLine, ATSGlobals.strDatabaseName));
332                                }
333                          }                          }
                         return (int)VersionCheck.Failed;  
334                      }                      }
335                  }                  }
336                  vDb = new Version(strResult);                  #endregion
337    
338                    #region old-code might still need
339                    //try
340                    //{
341                    //    //using (log4net.NDC.Push(string.Format("SQL Statment={0}", "SELECT value from {0}..AppInfo where property='version'", ATSGlobals.strDatabaseName)))
342                    //    //{
343                    //        Logging.ATSAdminLog.Debug(string.Format("Getting {0} Database Version#1", ATSGlobals.strDatabaseName));
344                    //        sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace(ATSGlobals.strDatabaseName, "master"));
345                    //        if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
346                    //        sqlCmd = new SqlCommand(string.Format("SELECT value from {0}..AppInfo where property='version'",ATSGlobals.strDatabaseName), sqlCon);
347                    //        strResult = (string)sqlCmd.ExecuteScalar();
348                    //        sqlCon.Close();
349                    //    //}
350                    //    Logging.ATSAdminLog.DebugFormat("{0} database version={1}",ATSGlobals.strDatabaseName, strResult);
351                    //}
352                    //catch(SqlException ex)
353                    //{
354                    //    // the database exists, but one or more tables are missing
355                    //    using (log4net.NDC.Push(string.Format("SqlException: ID={0} MESSAGE={1}{2}Diagnostics:{2}{3}", ex.Number.ToString(), ex.Message, System.Environment.NewLine, ex.ToString())))
356                    //    {
357                    //        Logging.ATSAdminLog.Error("Failed to get database version");
358                    //    }
359                    //    try
360                    //    {
361                    //        //using (log4net.NDC.Push(string.Format("SQL Statment={0}", SQLServerResources.CreateTables)))
362                    //        //{
363                    //            Logging.ATSAdminLog.Debug(string.Format("Creating Tables in {0} Database in CheckVersion()", ATSGlobals.strDatabaseName));
364                    //            sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace(ATSGlobals.strDatabaseName, "master"));
365                    //            if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
366                    //            RunScript(SQLServerResources.CreateTables);
367                    //            sqlCon.Close();
368                    //        //}
369                    //        Logging.ATSAdminLog.Debug(string.Format("Created Tables in {0} Database in CheckVersion()", ATSGlobals.strDatabaseName));
370                    //        using (log4net.NDC.Push(string.Format("SQL Statment={0}", string.Format("SELECT value from {0}..AppInfo where property='version'", ATSGlobals.strDatabaseName))))
371                    //        {
372                    //            Logging.ATSAdminLog.Debug(string.Format("Getting {0} Database Version#2", ATSGlobals.strDatabaseName));
373                    //            sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace(ATSGlobals.strDatabaseName, "master"));
374                    //            if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
375                    //            sqlCmd = new SqlCommand(string.Format("SELECT value from {0}..AppInfo where property='version'", ATSGlobals.strDatabaseName), sqlCon);
376                    //            strResult = (string)sqlCmd.ExecuteScalar();
377                    //            sqlCon.Close();
378                    //        }
379                    //        Logging.ATSAdminLog.DebugFormat("{0} database version={1}",ATSGlobals.strDatabaseName, strResult);
380                    //    }
381                    //    catch(SqlException ex1)
382                    //    {
383                    //        using (log4net.NDC.Push(string.Format("SqlException: ID={0} MESSAGE={1}{2}Diagnostics:{2}{3}", ex1.Number.ToString(), ex1.Message, System.Environment.NewLine, ex1.ToString())))
384                    //        {
385                    //            Logging.ATSAdminLog.Error("Failed to get database version");
386                    //        }
387                    //        return (int)VersionCheck.Failed;
388                    //    }
389                    //}
390                    #endregion
391                    
392                        
393                  sqlCon.Close();                  sqlCon.Close();
394    

Legend:
Removed from v.86  
changed lines
  Added in v.87

  ViewVC Help
Powered by ViewVC 1.1.22