/[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 10 by william, Wed Jul 11 16:01:40 2012 UTC revision 19 by william, Wed Jul 11 18:07:00 2012 UTC
# Line 21  namespace AnywhereTS Line 21  namespace AnywhereTS
21          private SqlCommand sqlCmd = new SqlCommand();          private SqlCommand sqlCmd = new SqlCommand();
22    
23          const string SQL_BROWSER_SERVICE_NAME = "SQLBrowser";          const string SQL_BROWSER_SERVICE_NAME = "SQLBrowser";
24            
25            public static string InstanceName
26            {
27                get
28                {
29                    bool start = false;
30                    bool end = false;
31                    List<char> pChars = new List<char>();
32                    foreach (char c in Properties.Settings.Default.atsConnectionString.ToCharArray())
33                    {
34                        if (c == '\\') { start = true; continue; }
35                        if (c == ';') { end = true; }
36                        if (end) break;
37                        if (start) { pChars.Add(c); }
38                    }
39                    return new string(pChars.ToArray());
40                }
41            }
42          public bool SetupDatabase()          public bool SetupDatabase()
43          {          {
44              bool bContinue = false;              bool bContinue = false;
   
45              // Create a connection to SQL Server              // Create a connection to SQL Server
46              try              try
47              {              {
48                  sqlCon.ConnectionString = Properties.Settings.Default.atsConnectionString;                  sqlCon.ConnectionString = Properties.Settings.Default.atsConnectionString;
49                  sqlCon.Open();                  sqlCon.Open();
50              }              }
51              catch (SqlException sql_ex)              catch
52              {              {
53                  MessageBox.Show("Fail to connect to SQL Server Express\n" + sql_ex.Number.ToString() + " " + sql_ex.Message.ToString());                  //MessageBox.Show(string.Format("Fail to connect to SQL Server Instance: {0}\n", InstanceName) + sql_ex.Number.ToString() + " " + sql_ex.Message.ToString());
54                  return bContinue;                  //return bContinue;
55                    //bCreateDB = true;
56                    try
57                    {
58                        sqlCon.ConnectionString = Properties.Settings.Default.atsConnectionString.Replace("AnywhereTS", "master");
59                        sqlCon.Open();
60                        RunScript(Resource1.CreateDatabase.ToString());
61                        sqlCon.Close();
62                        sqlCon = new SqlConnection(Properties.Settings.Default.atsConnectionString);
63                        sqlCon.Open();
64                    }
65                    catch (SqlException sql_ex1)
66                    {
67                        SqlException sql_ex = (sql_ex1.GetBaseException() as SqlException);
68                        MessageBox.Show(string.Format("Failed to connect to SQL Server Instance: {0}\n", InstanceName) + sql_ex.Number.ToString() + " " + sql_ex.Message.ToString());
69                        return bContinue;
70                    }
71              }              }
72                    
73              // Now that you are connected to Express, check the database versions              // Now that you are connected to Express, check the database versions
   
74              Version databaseVersion; // The current version of the database              Version databaseVersion; // The current version of the database
75                int chkVer = CheckVersion(out databaseVersion);
76              switch (CheckVersion(out databaseVersion))              VersionCheck verChk = (VersionCheck)chkVer;
77                //MessageBox.Show(string.Format("Version Check: {0} Version: {1}", verChk.ToString(), databaseVersion.ToString()));
78                switch (chkVer)
79              {              {
80                  case (int)VersionCheck.Equal:                  case (int)VersionCheck.Equal:
81                      {                      {
# Line 177  namespace AnywhereTS Line 210  namespace AnywhereTS
210                      //Drop the database                      //Drop the database
211                      sqlCmd = new SqlCommand("IF EXISTS(SELECT * FROM sysdatabases WHERE name='AnywhereTS')DROP DATABASE AnywhereTS", sqlCon);                      sqlCmd = new SqlCommand("IF EXISTS(SELECT * FROM sysdatabases WHERE name='AnywhereTS')DROP DATABASE AnywhereTS", sqlCon);
212                      strResult = (string)sqlCmd.ExecuteScalar();                      strResult = (string)sqlCmd.ExecuteScalar();
213                      return (int)VersionCheck.DatabaseNotFound;                                              return (int)VersionCheck.DatabaseNotFound;
214                  }                  }
215                  vDb = new Version(strResult);                  vDb = new Version(strResult);
216                        
# Line 265  namespace AnywhereTS Line 298  namespace AnywhereTS
298              }              }
299              catch              catch
300              {              {
301                  MessageBox.Show("Error, could not configure SQL Browser service (24888). Please check that SQL Server Express 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.");
302              }              }
303          }          }
304    
# Line 284  namespace AnywhereTS Line 317  namespace AnywhereTS
317              {              {
318                  prot.Get();                  prot.Get();
319                  if ((string)prot.GetPropertyValue("ProtocolName") == "Np" &&  //Named pipes                  if ((string)prot.GetPropertyValue("ProtocolName") == "Np" &&  //Named pipes
320                      (string)prot.GetPropertyValue("InstanceName") == "SQLEXPRESS")                      (string)prot.GetPropertyValue("InstanceName") == InstanceName)
321                  {   // We found the named pipes protocol                  {   // We found the named pipes protocol
322                      if (!(bool)prot.GetPropertyValue("Enabled"))                      if (!(bool)prot.GetPropertyValue("Enabled"))
323                      {   // Named pipes not activated                      {   // Named pipes not activated
# Line 292  namespace AnywhereTS Line 325  namespace AnywhereTS
325                                
326                          // Check if user wants to restart SQL server                          // Check if user wants to restart SQL server
327                          DialogResult resultRights;                          DialogResult resultRights;
328                          resultRights = MessageBox.Show("In order for users to use the AnywhereTS control panel, the SQL Express service on this computer need to be restarted. This operation might take up to 60 seconds. Do you want restart the SQL Express service now?", "AnywhereTS - Restart SQL Express (This operation might take up to 60 seconds!)", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);                          resultRights = MessageBox.Show(string.Format("In order for users to use the AnywhereTS control panel, the {0} service on this computer need to be restarted. This operation might take up to 60 seconds. Do you want restart the {0} service now?", InstanceName), string.Format("AnywhereTS - Restart {0} (This operation might take up to 60 seconds!)", InstanceName), MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
329                          if (resultRights == DialogResult.Yes)                          if (resultRights == DialogResult.Yes)
330                          {                          {
331                              // Restart the SQL server                              // Restart the SQL server
# Line 301  namespace AnywhereTS Line 334  namespace AnywhereTS
334                              foreach (ManagementObject svc in sqlServicesMan.GetInstances())                              foreach (ManagementObject svc in sqlServicesMan.GetInstances())
335                              {                              {
336                                  if ((uint)svc.GetPropertyValue("SqlServiceType") == sqlServerService &&                                  if ((uint)svc.GetPropertyValue("SqlServiceType") == sqlServerService &&
337                                      (string)svc.GetPropertyValue("ServiceName") == "MSSQL$SQLEXPRESS")                                      (string)svc.GetPropertyValue("ServiceName") == string.Format("MSSQL${0}", InstanceName))
338                                  {                                  {
339                                      svc.Get();                                      svc.Get();
340                                      if ((uint)svc.GetPropertyValue("State") != sqlServiceStopped)                                      if ((uint)svc.GetPropertyValue("State") != sqlServiceStopped)

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

  ViewVC Help
Powered by ViewVC 1.1.22