/[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 39 by william, Thu Jul 12 12:21:43 2012 UTC revision 50 by william, Thu Jul 12 14:51:57 2012 UTC
# Line 27  namespace AnywhereTS Line 27  namespace AnywhereTS
27          private SqlCommand sqlCmd = new SqlCommand();          private SqlCommand sqlCmd = new SqlCommand();
28    
29          const string SQL_BROWSER_SERVICE_NAME = "SQLBrowser";          const string SQL_BROWSER_SERVICE_NAME = "SQLBrowser";
         const Version CURRENT_DB_VERSION = new Version(1, 0, 0, 3);  
30          public static string InstanceName          public static string InstanceName
31          {          {
32              get              get
# Line 58  namespace AnywhereTS Line 57  namespace AnywhereTS
57                  {                  {
58                      Logging.ATSAdminLog.Debug("Opening connection to AnywhereTS Database");                      Logging.ATSAdminLog.Debug("Opening connection to AnywhereTS Database");
59                  }                  }
60                  sqlCon.Open();                  if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
61              }              }
62              catch              catch
63              {              {
# Line 71  namespace AnywhereTS Line 70  namespace AnywhereTS
70                      {                      {
71                          Logging.ATSAdminLog.Debug("Creating Database AnywhereTS");                          Logging.ATSAdminLog.Debug("Creating Database AnywhereTS");
72                          sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));                          sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));
73                          sqlCon.Open();                          if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
74                          RunScript(Resource1.CreateDatabase.ToString());                          RunScript(Resource1.CreateDatabase.ToString());
75                          sqlCon.Close();                          sqlCon.Close();
76                      }                      }
# Line 81  namespace AnywhereTS Line 80  namespace AnywhereTS
80                      {                      {
81                          Logging.ATSAdminLog.Debug("Creating Tables in AnywhereTS Database");                          Logging.ATSAdminLog.Debug("Creating Tables in AnywhereTS Database");
82                          sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));                          sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));
83                          sqlCon.Open();                          if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
84                          RunScript(Resource1.CreateTables.ToString());                          RunScript(Resource1.CreateTables.ToString());
85                          sqlCon.Close();                          //sqlCon.Close();
86                      }                      }
87                      Logging.ATSAdminLog.Debug("Created Tables in AnywhereTS Database");                      Logging.ATSAdminLog.Debug("Created Tables in AnywhereTS Database");
88                  }                  }
# Line 143  namespace AnywhereTS Line 142  namespace AnywhereTS
142                                      bContinue = RunScript(Resource1.UpdateDatabase3.ToString());                                      bContinue = RunScript(Resource1.UpdateDatabase3.ToString());
143                                      Logging.ATSAdminLog.DebugFormat("Upgraded Database from version: {0} to version: {1}", "1.0.0.2", "1.0.0.3");                                      Logging.ATSAdminLog.DebugFormat("Upgraded Database from version: {0} to version: {1}", "1.0.0.2", "1.0.0.3");
144                                      break;                                      break;
145                                  }                                  }                            
   
                               
146                              default:                              default:
147                                  {                                  {
148                                      MessageBox.Show("Error: Not able to upgrade database (51188)");                                      //MessageBox.Show("Error: Not able to upgrade database (51188)");
149                                      Logging.ATSAdminLog.DebugFormat("Failed to upgrade Database from version: {0} to version: {1}", databaseVersion.ToString(), CURRENT_DB_VERSION.ToString());                                      if (databaseVersion == new Version(0, 0, 0, 0))
150                                        {
151                                            string format = string.Format("Database version is {0}, this should have been auto upgraded to {1}", databaseVersion.ToString(), ATSGlobals.strDatabaseVersion);
152                                            Logging.ATSAdminLog.Fatal(format);
153                                            MessageBox.Show(format);
154                                        }
155                                        else
156                                        {
157                                            string format = string.Format("Failed to upgrade Database from version: {0} to version: {1}", databaseVersion.ToString(), ATSGlobals.strDatabaseVersion);
158                                            Logging.ATSAdminLog.Fatal(format);
159                                            MessageBox.Show(format);
160                                        }                                    
161                                      break;                                      break;
162                                  }                                  }
163                          }                          }
# Line 196  namespace AnywhereTS Line 204  namespace AnywhereTS
204                  }                  }
205              }              }
206              catch (SqlException sql_ex)              catch (SqlException sql_ex)
207              {              {              
208                  MessageBox.Show(sql_ex.Number.ToString() + " " + sql_ex.Message.ToString());                  MessageBox.Show(sql_ex.Number.ToString() + " " + sql_ex.Message.ToString());
209                    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())))
210                    {
211                        Logging.ATSAdminLog.Error("Failed to RunScript");
212                    }
213                  return false;                  return false;
214              }              }
215    
# Line 217  namespace AnywhereTS Line 229  namespace AnywhereTS
229                  string strResult;                  string strResult;
230    
231                  //Verify that the AnywhereTS database exists                  //Verify that the AnywhereTS database exists
                 sqlCmd = new SqlCommand("select count(*) from master..sysdatabases where name='AnywhereTS'", sqlCon);  
                 strResult = sqlCmd.ExecuteScalar().ToString();  
232    
233                  if (strResult == "0")                  using (log4net.NDC.Push(string.Format("SQL STATMENT={0}", "select count(*) from master..sysdatabases where name='AnywhereTS'")))
234                  {                  {
235                      sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));                      Logging.ATSAdminLog.Debug("Getting Coount of AnywhereTS databases");
236                      sqlCon.Open();                      if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
237                      RunScript(Resource1.CreateDatabase.ToString());                      sqlCmd = new SqlCommand("select count(*) from master..sysdatabases where name='AnywhereTS'", sqlCon);
238                      sqlCon.Close();                      strResult = sqlCmd.ExecuteScalar().ToString();
                     sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));  
                     sqlCon.Open();  
                     RunScript(Resource1.CreateTables.ToString());  
                     sqlCon.Close();  
239                  }                  }
240                  try                 Logging.ATSAdminLog.DebugFormat("AnywhereTS databases Count={0}", strResult);
241                  {  
242                      sqlCon.Close();                  if (strResult == "0")
                     sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString);  
                     sqlCon.Open();  
                     sqlCmd = new SqlCommand("SELECT value from AnywhereTS..AppInfo where property='version'", sqlCon);  
                     strResult = (string)sqlCmd.ExecuteScalar();  
                     sqlCon.Close();  
                 }  
                 catch  
243                  {                  {
244                      // the database exists, but one or more tables are missing  
245                      try  
246                        using (log4net.NDC.Push(string.Format("SQL Statment={0}", Resource1.CreateDatabase.ToString())))
247                        {
248                            Logging.ATSAdminLog.Debug("Creating Database AnywhereTS in CheckVersion()");
249                            sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));
250                            if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
251                            RunScript(Resource1.CreateDatabase.ToString());
252                            sqlCon.Close();
253                        }
254                        Logging.ATSAdminLog.Debug("Created Database AnywhereTS in CheckVersion()");
255    
256                        using (log4net.NDC.Push(string.Format("SQL Statment={0}", Resource1.CreateTables.ToString())))
257                      {                      {
258                            Logging.ATSAdminLog.Debug("Creating Tables in AnywhereTS Database in CheckVersion()");
259                          sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));                          sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));
260                          sqlCon.Open();                          if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
261                          RunScript(Resource1.CreateTables.ToString());                          RunScript(Resource1.CreateTables.ToString());
262                          sqlCon.Close();                          sqlCon.Close();
263                        }
264                        Logging.ATSAdminLog.Debug("Created Tables in AnywhereTS Database in CheckVersion()");
265                    }
266                    try
267                    {
268                        using (log4net.NDC.Push(string.Format("SQL Statment={0}", "SELECT value from AnywhereTS..AppInfo where property='version'")))
269                        {
270                            Logging.ATSAdminLog.Debug("Getting AnywhereTS Database Version#1");
271                          sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString);                          sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString);
272                          sqlCon.Open();                          if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
273                          sqlCmd = new SqlCommand("SELECT value from AnywhereTS..AppInfo where property='version'", sqlCon);                          sqlCmd = new SqlCommand("SELECT value from AnywhereTS..AppInfo where property='version'", sqlCon);
274                          strResult = (string)sqlCmd.ExecuteScalar();                          strResult = (string)sqlCmd.ExecuteScalar();
275                            sqlCon.Close();
276                        }
277                        Logging.ATSAdminLog.DebugFormat("AnywhereTS database version={0}", strResult);
278                    }
279                    catch(SqlException ex)
280                    {
281                        // the database exists, but one or more tables are missing
282                        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())))
283                        {
284                            Logging.ATSAdminLog.Error("Failed to get database version");
285                      }                      }
286                      catch                      try
287                      {                      {
288    
289                            using (log4net.NDC.Push(string.Format("SQL Statment={0}", Resource1.CreateTables.ToString())))
290                            {
291                                Logging.ATSAdminLog.Debug("Creating Tables in AnywhereTS Database in CheckVersion()");
292                                sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));
293                                if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
294                                RunScript(Resource1.CreateTables.ToString());
295                                sqlCon.Close();
296                            }
297                            Logging.ATSAdminLog.Debug("Created Tables in AnywhereTS Database in CheckVersion()");
298    
299                            using (log4net.NDC.Push(string.Format("SQL Statment={0}", "SELECT value from AnywhereTS..AppInfo where property='version'")))
300                            {
301                                Logging.ATSAdminLog.Debug("Getting AnywhereTS Database Version#2");
302                                sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString);
303                                if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
304                                sqlCmd = new SqlCommand("SELECT value from AnywhereTS..AppInfo where property='version'", sqlCon);
305                                strResult = (string)sqlCmd.ExecuteScalar();
306                                sqlCon.Close();
307                            }
308                            Logging.ATSAdminLog.DebugFormat("AnywhereTS database version={0}", strResult);
309                        }
310                        catch(SqlException ex1)
311                        {
312                            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())))
313                            {
314                                Logging.ATSAdminLog.Error("Failed to get database version");
315                            }
316                          return (int)VersionCheck.Failed;                          return (int)VersionCheck.Failed;
317                      }                      }
318                  }                  }
# Line 276  namespace AnywhereTS Line 333  namespace AnywhereTS
333              catch (SqlException sql_ex)              catch (SqlException sql_ex)
334              {              {
335                  MessageBox.Show(sql_ex.Number.ToString() + " " + sql_ex.Message.ToString());                  MessageBox.Show(sql_ex.Number.ToString() + " " + sql_ex.Message.ToString());
336                    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())))
337                    {
338                        Logging.ATSAdminLog.Error("Failed to check database version");
339                    }
340                  return (int)VersionCheck.Failed;                  return (int)VersionCheck.Failed;
341              }              }
342              catch (Exception system_ex)              catch (Exception system_ex)
343              {              {
344                  MessageBox.Show(system_ex.Message.ToString());                  MessageBox.Show(system_ex.Message.ToString());
345                    using (log4net.NDC.Push(string.Format("SqlException: MESSAGE={0}{1}Diagnostics:{1}{2}", system_ex.Message, System.Environment.NewLine, system_ex.ToString())))
346                    {
347                        Logging.ATSAdminLog.Error("Failed to check database version");
348                    }
349                  return (int)VersionCheck.Failed;                  return (int)VersionCheck.Failed;
350              }              }
351          }          }
# Line 305  namespace AnywhereTS Line 370  namespace AnywhereTS
370              catch (Exception e)              catch (Exception e)
371              {              {
372                  MessageBox.Show("Cannot set access rights for users to the database. Do you have the sufficient rights? Application will abort. Error: " + e.Message);                  MessageBox.Show("Cannot set access rights for users to the database. Do you have the sufficient rights? Application will abort. Error: " + e.Message);
373                    using (log4net.NDC.Push(string.Format("SqlException: MESSAGE={0}{1}Diagnostics:{1}{2}", e.Message, System.Environment.NewLine, e.ToString())))
374                    {
375                        Logging.ATSAdminLog.Fatal("Cannot set access rights for users to the database.");
376                    }
377                  Application.Exit();                  Application.Exit();
378                  return;                  return;
379              }              }
# Line 326  namespace AnywhereTS Line 395  namespace AnywhereTS
395              catch (Exception e)              catch (Exception e)
396              {              {
397                  MessageBox.Show("Could not start the SQL Browser service (13078). Error:" + e.Message);                  MessageBox.Show("Could not start the SQL Browser service (13078). Error:" + e.Message);
398                    using (log4net.NDC.Push(string.Format("SqlException: MESSAGE={0}{1}Diagnostics:{1}{2}", e.Message, System.Environment.NewLine, e.ToString())))
399                    {
400                        Logging.ATSAdminLog.Error("Could not start the SQL Browser service (13078).");
401                    }
402              }              }
403          }          }
404    
# Line 344  namespace AnywhereTS Line 417  namespace AnywhereTS
417    
418                  }                  }
419              }              }
420              catch              catch(Exception e)
421              {              {
422                  MessageBox.Show("Error, could not configure SQL Browser service (24888). Please check that SQL Server is intalled and that you are logged in with sufficient rights to configure services. Then retry the operation.");                  MessageBox.Show("Error, could not configure SQL Browser service (24888). Please check that SQL Server is intalled and that you are logged in with sufficient rights to configure services. Then retry the operation.");
423                    using (log4net.NDC.Push(string.Format("SqlException: MESSAGE={0}{1}Diagnostics:{1}{2}", e.Message, System.Environment.NewLine, e.ToString())))
424                    {
425                        Logging.ATSAdminLog.Fatal("Could not configure SQL Browser service (24888). Please check that SQL Server is intalled and that you are logged in with sufficient rights to configure services. Then retry the operation.");
426                    }
427              }              }
428          }          }
429    

Legend:
Removed from v.39  
changed lines
  Added in v.50

  ViewVC Help
Powered by ViewVC 1.1.22