/[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 19 by william, Wed Jul 11 18:07:00 2012 UTC revision 21 by william, Wed Jul 11 19:34:51 2012 UTC
# Line 13  namespace AnywhereTS Line 13  namespace AnywhereTS
13      {      {
14          enum VersionCheck          enum VersionCheck
15          {          {
16              Failed = 0, Equal, DatabaseIsMoreNew,              Failed = 0,
17              DatabaseIsOlder, DatabaseNotFound              Equal,
18                DatabaseIsMoreNew,
19                DatabaseIsOlder,
20                //DatabaseNotFound,
21                DatabaseCreated,
22          };          };
23    
24          private SqlConnection sqlCon = new SqlConnection();          private SqlConnection sqlCon = new SqlConnection();
# Line 55  namespace AnywhereTS Line 59  namespace AnywhereTS
59                  //bCreateDB = true;                  //bCreateDB = true;
60                  try                  try
61                  {                  {
62                      sqlCon.ConnectionString = Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master");                      try
63                        {
64                            sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString);
65                            sqlCon.Open();
66                            RunScript("DROP AnywhereTS");
67                            sqlCon.Close();
68                        }
69                        catch { }
70    
71                        sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));
72                      sqlCon.Open();                      sqlCon.Open();
73                      RunScript(Resource1.CreateDatabase.ToString());                      RunScript(Resource1.CreateDatabase.ToString());
74                      sqlCon.Close();                      sqlCon.Close();
# Line 74  namespace AnywhereTS Line 87  namespace AnywhereTS
87              Version databaseVersion; // The current version of the database              Version databaseVersion; // The current version of the database
88              int chkVer = CheckVersion(out databaseVersion);              int chkVer = CheckVersion(out databaseVersion);
89              VersionCheck verChk = (VersionCheck)chkVer;              VersionCheck verChk = (VersionCheck)chkVer;
90              //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()));
91              switch (chkVer)              switch (chkVer)
92              {              {
93                  case (int)VersionCheck.Equal:                  case (int)VersionCheck.Equal:
# Line 122  namespace AnywhereTS Line 135  namespace AnywhereTS
135                          bContinue = false;                          bContinue = false;
136                          break;                          break;
137                      }                      }
                 case (int)VersionCheck.DatabaseNotFound:  
                     {  
                         //Run the creation script  
                         bContinue = RunScript(Resource1.CreateDatabase.ToString());  
                         if (bContinue)  
                         {  
                             // Set up file access rights for remote desktop users  
                             SetDatabaseRights();  
                         }  
   
                         break;  
                     }  
138                  default:                  default:
139                      {                      {
140                          bContinue = false;                          bContinue = false;
# Line 193  namespace AnywhereTS Line 194  namespace AnywhereTS
194                  //Verify that the AnywhereTS database exists                  //Verify that the AnywhereTS database exists
195                  sqlCmd = new SqlCommand("select count(*) from master..sysdatabases where name='AnywhereTS'", sqlCon);                  sqlCmd = new SqlCommand("select count(*) from master..sysdatabases where name='AnywhereTS'", sqlCon);
196                  strResult = sqlCmd.ExecuteScalar().ToString();                  strResult = sqlCmd.ExecuteScalar().ToString();
197                    
198                  if (strResult == "0")                  if (strResult == "0")
199                  {                  {
200    
201                      return (int)VersionCheck.DatabaseNotFound;                      sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));
202                        sqlCon.Open();
203                        RunScript(Resource1.CreateDatabase.ToString());
204                        sqlCon.Close();
205                    }
206                    else
207                    {
208                        sqlCon.Close();
209                        sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));
210                        sqlCon.Open();
211                        RunScript("DROP DATABASE AnywhereTS");
212                        sqlCon.Close();
213                        sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));
214                        sqlCon.Open();
215                        RunScript(Resource1.CreateDatabase.ToString());
216                        sqlCon.Close();
217                  }                  }
218    
219                  try                  try
220                  {                  {
221                        sqlCon.Close();
222                        sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString);
223                      sqlCmd = new SqlCommand("SELECT value from AnywhereTS..AppInfo where property='version'", sqlCon);                      sqlCmd = new SqlCommand("SELECT value from AnywhereTS..AppInfo where property='version'", sqlCon);
224                      strResult = (string)sqlCmd.ExecuteScalar();                      strResult = (string)sqlCmd.ExecuteScalar();
225                  }                  }
226                  catch                  catch
227                  {   // Assume we could not open the physical file                  {
228                      //Drop the database                      // database exists, but does not have one or more expected tables
229                      sqlCmd = new SqlCommand("IF EXISTS(SELECT * FROM sysdatabases WHERE name='AnywhereTS')DROP DATABASE AnywhereTS", sqlCon);                      try
230                      strResult = (string)sqlCmd.ExecuteScalar();                      {
231                      return (int)VersionCheck.DatabaseNotFound;                          sqlCon.Close();
232                            sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));
233                            sqlCon.Open();
234                            RunScript("DROP DATABASE AnywhereTS");
235                            sqlCon.Close();
236                            sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master"));
237                            sqlCmd.Connection = sqlCon;
238                            sqlCmd.CommandText = Resource1.CreateDatabase.ToString();
239                            sqlCmd.ExecuteNonQuery();
240                            sqlCon.Close();
241    
242                            sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString);
243                            sqlCmd = new SqlCommand("SELECT value from AnywhereTS..AppInfo where property='version'", sqlCon);
244                            strResult = (string)sqlCmd.ExecuteScalar();
245                        }
246                        catch { return (int)VersionCheck.Failed; }
247                  }                  }
248                  vDb = new Version(strResult);                  vDb = new Version(strResult);
249                        
# Line 245  namespace AnywhereTS Line 278  namespace AnywhereTS
278              return commands;              return commands;
279          }          }
280    
281        
282            [Obsolete("SetDatabaseRights() has been deperecated - user rights are assigned via SQL Server")]
283          public static void SetDatabaseRights()          public static void SetDatabaseRights()
284          {          {
285              try              try

Legend:
Removed from v.19  
changed lines
  Added in v.21

  ViewVC Help
Powered by ViewVC 1.1.22