/[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 51 by william, Thu Jul 12 16:21:35 2012 UTC revision 74 by william, Fri Jul 13 00:43:28 2012 UTC
# Line 7  using System.Windows.Forms; Line 7  using System.Windows.Forms;
7  using System.Text.RegularExpressions;  using System.Text.RegularExpressions;
8  using System.Management;  using System.Management;
9  using log4net;  using log4net;
10    using System.Security.Principal;
11    
12  namespace AnywhereTS  namespace AnywhereTS
13  {  {
# Line 55  namespace AnywhereTS Line 56  namespace AnywhereTS
56                  sqlCon.ConnectionString = Properties.Settings.Default.atsConnectionString;                                  sqlCon.ConnectionString = Properties.Settings.Default.atsConnectionString;                
57                  using (log4net.NDC.Push(string.Format("ConnectionString={0}", Properties.Settings.Default.atsConnectionString)))                  using (log4net.NDC.Push(string.Format("ConnectionString={0}", Properties.Settings.Default.atsConnectionString)))
58                  {                  {
59                      Logging.ATSAdminLog.Debug("Opening connection to AnywhereTS Database");                      Logging.ATSAdminLog.Debug(string.Format("Opening connection to {0} Database", ATSGlobals.strDatabaseName));
60                  }                  }
61                  if (sqlCon.State != ConnectionState.Open) sqlCon.Open();                  if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
62              }              }
# Line 66  namespace AnywhereTS Line 67  namespace AnywhereTS
67                  //bCreateDB = true;                  //bCreateDB = true;
68                  try                  try
69                  {                  {
70                      using (log4net.NDC.Push(string.Format("SQL Statment={0}", Resource1.CreateDatabase.ToString())))                      using (log4net.NDC.Push(string.Format("SQL Statment={0}", Resource1.CreateDatabase.ToString().Replace("AnywhereTS", ATSGlobals.strDatabaseName))))
71                      {                      {
72                          Logging.ATSAdminLog.Debug("Creating Database AnywhereTS");                          Logging.ATSAdminLog.Debug(string.Format("Creating Database {0}", ATSGlobals.strDatabaseName));
73                          sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));                          sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace(ATSGlobals.strDatabaseName, "master"));
74                          if (sqlCon.State != ConnectionState.Open) sqlCon.Open();                          if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
75                          RunScript(Resource1.CreateDatabase.ToString());                          RunScript(Resource1.CreateDatabase.ToString().Replace("AnywhereTS", ATSGlobals.strDatabaseName));
76                            //RunScript(CreateDatabaseUserScript());
77                          sqlCon.Close();                          sqlCon.Close();
78                      }                      }
79                      Logging.ATSAdminLog.Debug("Created Database AnywhereTS");                      Logging.ATSAdminLog.Debug(string.Format("Created Database {0}", ATSGlobals.strDatabaseName));
80    
81                      using (log4net.NDC.Push(string.Format("SQL Statment={0}", Resource1.CreateTables.ToString())))                      using (log4net.NDC.Push(string.Format("SQL Statment={0}", Resource1.CreateTables.ToString().Replace("AnywhereTS", ATSGlobals.strDatabaseName))))
82                      {                      {
83                          Logging.ATSAdminLog.Debug("Creating Tables in AnywhereTS Database");                          Logging.ATSAdminLog.Debug(string.Format("Creating Tables in {0} Database", ATSGlobals.strDatabaseName));
84                          sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));                          sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace(ATSGlobals.strDatabaseName, "master"));
85                          if (sqlCon.State != ConnectionState.Open) sqlCon.Open();                          if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
86                          RunScript(Resource1.CreateTables.ToString());                          RunScript(Resource1.CreateTables.ToString().Replace("AnywhereTS", ATSGlobals.strDatabaseName));
87                          //sqlCon.Close();                          //sqlCon.Close();
88                      }                      }
89                      Logging.ATSAdminLog.Debug("Created Tables in AnywhereTS Database");                      Logging.ATSAdminLog.Debug(string.Format("Created Tables in {0} Database", ATSGlobals.strDatabaseName));
90                  }                  }
91                  catch (SqlException sql_ex1)                  catch (SqlException sql_ex1)
92                  {                  {
# Line 93  namespace AnywhereTS Line 95  namespace AnywhereTS
95    
96                      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())))                      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())))
97                      {                      {
98                          Logging.ATSAdminLog.Error("Failed to open connection to AnywhereTS Database");                          Logging.ATSAdminLog.Error(string.Format("Failed to open connection to {0} Database", ATSGlobals.strDatabaseName));
99                      }                      }
100                      return bContinue;                      return bContinue;
101                  }                  }
# Line 125  namespace AnywhereTS Line 127  namespace AnywhereTS
127                              case "1.0.0.0":                              case "1.0.0.0":
128                                  {   // Current database is version 1.0.0.0, update to 1.0.0.1                                  {   // Current database is version 1.0.0.0, update to 1.0.0.1
129                                      Logging.ATSAdminLog.DebugFormat("Upgrading Database from version: {0} to version: {1}", "1.0.0.0", "1.0.0.1");                                      Logging.ATSAdminLog.DebugFormat("Upgrading Database from version: {0} to version: {1}", "1.0.0.0", "1.0.0.1");
130                                      bContinue = RunScript(Resource1.UpdateDatabase1.ToString());                                      bContinue = RunScript(Resource1.UpdateDatabase1.ToString().Replace("AnywhereTS", ATSGlobals.strDatabaseName));
131                                      Logging.ATSAdminLog.DebugFormat("Upgraded Database from version: {0} to version: {1}", "1.0.0.0", "1.0.0.1");                                      Logging.ATSAdminLog.DebugFormat("Upgraded Database from version: {0} to version: {1}", "1.0.0.0", "1.0.0.1");
132                                      goto case "1.0.0.1"; // Continue and upgrade one more step                                      goto case "1.0.0.1"; // Continue and upgrade one more step
133                                  }                                  }
134                              case "1.0.0.1":                              case "1.0.0.1":
135                                  {   // Current database is version 1.0.0.1, update to 1.0.0.2                                  {   // Current database is version 1.0.0.1, update to 1.0.0.2
136                                      Logging.ATSAdminLog.DebugFormat("Upgrading Database from version: {0} to version: {1}", "1.0.0.1", "1.0.0.2");                                      Logging.ATSAdminLog.DebugFormat("Upgrading Database from version: {0} to version: {1}", "1.0.0.1", "1.0.0.2");
137                                      bContinue = RunScript(Resource1.UpdateDatabase2.ToString());                                      bContinue = RunScript(Resource1.UpdateDatabase2.ToString().Replace("AnywhereTS", ATSGlobals.strDatabaseName));
138                                      Logging.ATSAdminLog.DebugFormat("Upgraded Database from version: {0} to version: {1}", "1.0.0.2", "1.0.0.2");                                      Logging.ATSAdminLog.DebugFormat("Upgraded Database from version: {0} to version: {1}", "1.0.0.2", "1.0.0.2");
139                                      goto case "1.0.0.2"; // Continue and upgrade one more step                                      goto case "1.0.0.2"; // Continue and upgrade one more step
140                                  }                                  }
141                              case "1.0.0.2":                              case "1.0.0.2":
142                                  {   // Current database is version 1.0.0.2, update to 1.0.0.3                                  {   // Current database is version 1.0.0.2, update to 1.0.0.3
143                                      Logging.ATSAdminLog.DebugFormat("Upgrading Database from version: {0} to version: {1}", "1.0.0.2", "1.0.0.3");                                      Logging.ATSAdminLog.DebugFormat("Upgrading Database from version: {0} to version: {1}", "1.0.0.2", "1.0.0.3");
144                                      bContinue = RunScript(Resource1.UpdateDatabase3.ToString());                                      bContinue = RunScript(Resource1.UpdateDatabase3.ToString().Replace("AnywhereTS", ATSGlobals.strDatabaseName));
145                                      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");
146                                        goto case "1.0.0.3"; // Continue and upgrade one more step
147                                    }
148                                case "1.0.0.3":
149                                    {   // Current database is version 1.0.0.3, update to 1.0.0.4
150                                        Logging.ATSAdminLog.DebugFormat("Upgrading Database from version: {0} to version: {1}", "1.0.0.3", "1.0.0.4");
151                                        bContinue = RunScript(Resource1.UpdateDatabase4.ToString().Replace("AnywhereTS", ATSGlobals.strDatabaseName));
152                                        Logging.ATSAdminLog.DebugFormat("Upgraded Database from version: {0} to version: {1}", "1.0.0.4", "1.0.0.4");
153                                      break;                                      break;
154                                  }                                                              }
155                              default:                              default:
156                                  {                                  {
157                                      //MessageBox.Show("Error: Not able to upgrade database (51188)");                                      //MessageBox.Show("Error: Not able to upgrade database (51188)");
# Line 215  namespace AnywhereTS Line 224  namespace AnywhereTS
224    
225              return true;              return true;
226          }          }
227            
228            
229            private string CreateDatabaseUserScript()
230            {
231                //Logging.ATSAdminLog.Debug("CreateDatabaseUserScript() called");
232                //Logging.ATSAdminLog.Debug("Creating Database User Update Script");
233                //StringBuilder builder = new StringBuilder();
234                /*            
235                    -- Create user windows Authentication
236                    CREATE LOGIN [YourDomainName\JohnJacobs] FROM WINDOWS
237                    WITH DEFAULT_DATABASE = [YourDatabaseHere];
238                    GO
239                    -- Now add user to database
240                    USE YourDatabaseHere;
241                    CREATE USER JohnJacobs FOR LOGIN [YourDomainName\JohnJacobs];
242                 */
243                //builder.AppendLine("-- Create user windows Authentication");
244                ////builder.AppendLine(string.Format("CREATE LOGIN [{0}] FROM WINDOWS", GetImpersonatedUser()));
245                ////builder.AppendLine(string.Format("WITH DEFAULT_DATABASE = [{0}];", "AnywhereTS"));
246                //builder.AppendLine("GO");
247                //builder.AppendLine(string.Format(" -- Now add user to database"));
248                //builder.AppendLine(string.Format(" USE {0};", "AnywhereTS"));
249                //builder.AppendLine(string.Format(" CREATE USER [{0}] FOR LOGIN [{0}]",WindowsIdentity.GetCurrent().Name));
250                // WindowsIdentity.GetCurrent().Name.Substring(WindowsIdentity.GetCurrent().Name.LastIndexOf(@"\")+1)
251                //builder.AppendLine("GO");
252                //builder.AppendLine(string.Format(" USE {0};", "AnywhereTS"));
253                //builder.AppendLine(string.Format("exec sp_changedbowner [{0}]", WindowsIdentity.GetCurrent().Name));
254                //builder.AppendLine(string.Format("exec sp_changeobjectowner [{0}]", WindowsIdentity.GetCurrent().Name));
255                //using (log4net.NDC.Push(string.Format("CreateDatabaseUserScript() called")))
256                //{
257                //    using (log4net.NDC.Push(string.Format("script={0}", builder.ToString())))
258                //    {
259                //        Logging.ATSAdminLog.Debug("Created Database User Update Script");
260                //    }
261                //}
262                //return builder.ToString();
263    
264                return string.Empty;
265            }
266    
267          // Check the version of the datbase          // Check the version of the datbase
268          public int CheckVersion(out Version vDb)          public int CheckVersion(out Version vDb)
269          {          {
# Line 230  namespace AnywhereTS Line 277  namespace AnywhereTS
277    
278                  //Verify that the AnywhereTS database exists                  //Verify that the AnywhereTS database exists
279    
280                  using (log4net.NDC.Push(string.Format("SQL STATMENT={0}", "select count(*) from master..sysdatabases where name='AnywhereTS'")))                  using (log4net.NDC.Push(string.Format("SQL STATMENT={0}", "select count(*) from master..sysdatabases where name='{0}'", ATSGlobals.strDatabaseName)))
281                  {                  {
282                      Logging.ATSAdminLog.Debug("Getting Coount of AnywhereTS databases");                      Logging.ATSAdminLog.Debug(string.Format("Getting Coount of {0} databases", ATSGlobals.strDatabaseName));
283                      if (sqlCon.State != ConnectionState.Open) sqlCon.Open();                      if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
284                      sqlCmd = new SqlCommand("select count(*) from master..sysdatabases where name='AnywhereTS'", sqlCon);                      sqlCmd = new SqlCommand(string.Format("select count(*) from master..sysdatabases where name='{0}'", ATSGlobals.strDatabaseName), sqlCon);
285                      strResult = sqlCmd.ExecuteScalar().ToString();                      strResult = sqlCmd.ExecuteScalar().ToString();
286                  }                  }
287                 Logging.ATSAdminLog.DebugFormat("AnywhereTS databases Count={0}", strResult);                  Logging.ATSAdminLog.DebugFormat(string.Format("{0} databases Count={1}", ATSGlobals.strDatabaseName, strResult));
288    
289                  if (strResult == "0")                  if (strResult == "0")
290                  {                  {
291    
292    
293                      using (log4net.NDC.Push(string.Format("SQL Statment={0}", Resource1.CreateDatabase.ToString())))                      using (log4net.NDC.Push(string.Format("SQL Statment={0}", Resource1.CreateDatabase.ToString().Replace("AnywhereTS", ATSGlobals.strDatabaseName))))
294                      {                      {
295                          Logging.ATSAdminLog.Debug("Creating Database AnywhereTS in CheckVersion()");                          Logging.ATSAdminLog.Debug(string.Format("Creating Database {0} in CheckVersion()", ATSGlobals.strDatabaseName));
296                          sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));                          sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace(ATSGlobals.strDatabaseName, "master"));
297                          if (sqlCon.State != ConnectionState.Open) sqlCon.Open();                          if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
298                          RunScript(Resource1.CreateDatabase.ToString());                          RunScript(Resource1.CreateDatabase.ToString().Replace("AnywhereTS", ATSGlobals.strDatabaseName));
299                            //RunScript(CreateDatabaseUserScript());
300                          sqlCon.Close();                          sqlCon.Close();
301                      }                      }
302                      Logging.ATSAdminLog.Debug("Created Database AnywhereTS in CheckVersion()");                      Logging.ATSAdminLog.Debug(string.Format("Created Database {0} in CheckVersion()",ATSGlobals.strDatabaseName));
303    
304                      using (log4net.NDC.Push(string.Format("SQL Statment={0}", Resource1.CreateTables.ToString())))                      using (log4net.NDC.Push(string.Format("SQL Statment={0}", Resource1.CreateTables.ToString().Replace("AnywhereTS", ATSGlobals.strDatabaseName))))
305                      {                      {
306                          Logging.ATSAdminLog.Debug("Creating Tables in AnywhereTS Database in CheckVersion()");                          Logging.ATSAdminLog.Debug(string.Format("Creating Tables in {0} Database in CheckVersion()", ATSGlobals.strDatabaseName));
307                          sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));                          sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace(ATSGlobals.strDatabaseName, "master"));
308                          if (sqlCon.State != ConnectionState.Open) sqlCon.Open();                          if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
309                          RunScript(Resource1.CreateTables.ToString());                          RunScript(Resource1.CreateTables.ToString().Replace("AnywhereTS", ATSGlobals.strDatabaseName));
310                          sqlCon.Close();                          sqlCon.Close();
311                      }                      }
312                      Logging.ATSAdminLog.Debug("Created Tables in AnywhereTS Database in CheckVersion()");                      Logging.ATSAdminLog.Debug(string.Format("Created Tables in {0} Database in CheckVersion()", ATSGlobals.strDatabaseName));
313                  }                  }
314                  try                  try
315                  {                  {
316                      using (log4net.NDC.Push(string.Format("SQL Statment={0}", "SELECT value from AnywhereTS..AppInfo where property='version'")))                      using (log4net.NDC.Push(string.Format("SQL Statment={0}", "SELECT value from {0}..AppInfo where property='version'", ATSGlobals.strDatabaseName)))
317                      {                      {
318                          Logging.ATSAdminLog.Debug("Getting AnywhereTS Database Version#1");                          Logging.ATSAdminLog.Debug(string.Format("Getting {0} Database Version#1", ATSGlobals.strDatabaseName));
319                          sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));                          sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace(ATSGlobals.strDatabaseName, "master"));
320                          if (sqlCon.State != ConnectionState.Open) sqlCon.Open();                          if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
321                          sqlCmd = new SqlCommand("SELECT value from AnywhereTS..AppInfo where property='version'", sqlCon);                          sqlCmd = new SqlCommand(string.Format("SELECT value from {0}..AppInfo where property='version'",ATSGlobals.strDatabaseName), sqlCon);
322                          strResult = (string)sqlCmd.ExecuteScalar();                          strResult = (string)sqlCmd.ExecuteScalar();
323                          sqlCon.Close();                          sqlCon.Close();
324                      }                      }
325                      Logging.ATSAdminLog.DebugFormat("AnywhereTS database version={0}", strResult);                      Logging.ATSAdminLog.DebugFormat("{0} database version={1}",ATSGlobals.strDatabaseName, strResult);
326                  }                  }
327                  catch(SqlException ex)                  catch(SqlException ex)
328                  {                  {
# Line 286  namespace AnywhereTS Line 334  namespace AnywhereTS
334                      try                      try
335                      {                      {
336    
337                          using (log4net.NDC.Push(string.Format("SQL Statment={0}", Resource1.CreateTables.ToString())))                          using (log4net.NDC.Push(string.Format("SQL Statment={0}", Resource1.CreateTables.ToString().Replace("AnywhereTS", ATSGlobals.strDatabaseName))))
338                          {                          {
339                              Logging.ATSAdminLog.Debug("Creating Tables in AnywhereTS Database in CheckVersion()");                              Logging.ATSAdminLog.Debug(string.Format("Creating Tables in {0} Database in CheckVersion()", ATSGlobals.strDatabaseName));
340                              sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));                              sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace(ATSGlobals.strDatabaseName, "master"));
341                              if (sqlCon.State != ConnectionState.Open) sqlCon.Open();                              if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
342                              RunScript(Resource1.CreateTables.ToString());                              RunScript(Resource1.CreateTables.ToString().Replace("AnywhereTS", ATSGlobals.strDatabaseName));
343                              sqlCon.Close();                              sqlCon.Close();
344                          }                          }
345                          Logging.ATSAdminLog.Debug("Created Tables in AnywhereTS Database in CheckVersion()");                          Logging.ATSAdminLog.Debug(string.Format("Created Tables in {0} Database in CheckVersion()", ATSGlobals.strDatabaseName));
346    
347                          using (log4net.NDC.Push(string.Format("SQL Statment={0}", "SELECT value from AnywhereTS..AppInfo where property='version'")))                          using (log4net.NDC.Push(string.Format("SQL Statment={0}", "SELECT value from {0}..AppInfo where property='version'", ATSGlobals.strDatabaseName)))
348                          {                          {
349                              Logging.ATSAdminLog.Debug("Getting AnywhereTS Database Version#2");                              Logging.ATSAdminLog.Debug(string.Format("Getting {0} Database Version#2", ATSGlobals.strDatabaseName));
350                              sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));                              sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace(ATSGlobals.strDatabaseName, "master"));
351                              if (sqlCon.State != ConnectionState.Open) sqlCon.Open();                              if (sqlCon.State != ConnectionState.Open) sqlCon.Open();
352                              sqlCmd = new SqlCommand("SELECT value from AnywhereTS..AppInfo where property='version'", sqlCon);                              sqlCmd = new SqlCommand(string.Format("SELECT value from {0}..AppInfo where property='version'", ATSGlobals.strDatabaseName), sqlCon);
353                              strResult = (string)sqlCmd.ExecuteScalar();                              strResult = (string)sqlCmd.ExecuteScalar();
354                              sqlCon.Close();                              sqlCon.Close();
355                          }                          }
356                          Logging.ATSAdminLog.DebugFormat("AnywhereTS database version={0}", strResult);                          Logging.ATSAdminLog.DebugFormat("{0} database version={1}",ATSGlobals.strDatabaseName, strResult);
357                      }                      }
358                      catch(SqlException ex1)                      catch(SqlException ex1)
359                      {                      {

Legend:
Removed from v.51  
changed lines
  Added in v.74

  ViewVC Help
Powered by ViewVC 1.1.22