/[AnywhereTS-MSSQL]/trunk/AnywhereTS.DBSupport/DBConnector.cs
ViewVC logotype

Diff of /trunk/AnywhereTS.DBSupport/DBConnector.cs

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

revision 89 by william, Fri Jul 13 22:56:50 2012 UTC revision 121 by william, Sat Jul 14 09:40:33 2012 UTC
# Line 34  namespace AnywhereTS.DBSupport Line 34  namespace AnywhereTS.DBSupport
34          where DBDataAdapter : DbDataAdapter, new()          where DBDataAdapter : DbDataAdapter, new()
35      {      {
36    
37          public DBConnector(string Address, string Instance, string Database)          public DBConnector(string Server, string Instance, string Database)
38          {          {
39              DBServerAddress = Address;              DBServerAddress = Server;
40              DBServerInstance = Instance;              DBServerInstance = Instance;
41              DBDatabase = Database;              DBDatabase = Database;
42                using (log4net.NDC.Push(string.Format("[Server={0}] [Instance={1}] [Database={2}]", Server, Instance, Database)))
43                {
44                    Logging.DatabaseLog.Debug("Creating DBConnector instance");
45                }
46          }          }
47    
48          public static string GetConnectionString()          public static string GetConnectionString()
49          {          {
50              return string.Format(@"Data Source={0}\{1};Initial Catalog={2};Integrated Security=SSPI", DBServerAddress, DBServerInstance, DBDatabase);              return string.Format(@"Data Source={0}\{1};Database={2};Integrated Security=SSPI", DBServerAddress, DBServerInstance, DBDatabase);
51          }          }
52          protected DBConnection connection;          protected DBConnection connection;
53          #region DBServerAddress, DBServerInstance, DBDatabase          #region DBServerAddress, DBServerInstance, DBDatabase
# Line 93  namespace AnywhereTS.DBSupport Line 97  namespace AnywhereTS.DBSupport
97          public virtual void CreateConnection(out Exception ErrorInfo)          public virtual void CreateConnection(out Exception ErrorInfo)
98          {          {
99              ErrorInfo = null;              ErrorInfo = null;
100                string connetionString = string.Empty;
101              try              try
102              {              {                
                 string connetionString = null;  
103                  connetionString = GetConnectionString();                  connetionString = GetConnectionString();
104                  connection = new DBConnection();                  using (log4net.NDC.Push(string.Format("connetionString={0}", connetionString)))
105                  connection.ConnectionString = connetionString;                  {
106                        Logging.DatabaseLog.Debug("Creating Connection");
107                        connection = new DBConnection();
108                        connection.ConnectionString = connetionString;
109                        Logging.DatabaseLog.Debug("Created Connection");
110                    }
111              }              }
112              catch (SqlException ex)              catch (SqlException ex)
113              {              {
# Line 122  namespace AnywhereTS.DBSupport Line 131  namespace AnywhereTS.DBSupport
131          public virtual void OpenConnection(out Exception ErrorInfo)          public virtual void OpenConnection(out Exception ErrorInfo)
132          {          {
133              ErrorInfo = null;              ErrorInfo = null;
134                string connetionString = string.Empty;
135              try              try
136              {              {
137                  //this.CloseConnection(out ErrorInfo);                  //this.CloseConnection(out ErrorInfo);
138                  connection.Open();                  connetionString = GetConnectionString();
139                  this.ConnectionIsOpen = true;                  using (log4net.NDC.Push(string.Format("connectionString={0}", connetionString)))
140                    {
141                        Logging.DatabaseLog.Debug("Opening Connection");
142                        connection.Open();
143                        this.ConnectionIsOpen = true;
144                        Logging.DatabaseLog.Debug("Opened Connection");
145                    }
146              }              }
147              //catch (SqlException ex) { Console.WriteLine(ex.ToString()); ErrorInfo = ex;  throw ErrorInfo;}              //catch (SqlException ex) { Console.WriteLine(ex.ToString()); ErrorInfo = ex;  throw ErrorInfo;}
148              catch (SqlException ex)              catch (SqlException ex)
# Line 286  namespace AnywhereTS.DBSupport Line 302  namespace AnywhereTS.DBSupport
302          public string[] ParseScriptToCommands(string strScript)          public string[] ParseScriptToCommands(string strScript)
303          {          {
304              string[] commands;              string[] commands;
305              commands = Regex.Split(strScript, "GO\r\n", RegexOptions.IgnoreCase);              commands = strScript.Split(new string[] { string.Format("GO{0}", System.Environment.NewLine) }, StringSplitOptions.RemoveEmptyEntries);
306              return commands;              return commands;
307          }          }
308          #endregion          #endregion
309          #region public virtual bool RunScript(string strFile, out Exception ErrorInfo)          #region public virtual bool RunScript(string strFile, out Exception ErrorInfo)
310          public virtual bool RunScript(string strFile, out Exception ErrorInfo)          public bool RunScript(string strFile, out Exception ErrorInfo)
311          {          {
312              ErrorInfo = null;              ErrorInfo = null;
313              try              try
# Line 300  namespace AnywhereTS.DBSupport Line 316  namespace AnywhereTS.DBSupport
316                  strCommands = ParseScriptToCommands(strFile);                  strCommands = ParseScriptToCommands(strFile);
317                  if (this.ConnectionIsOpen)                  if (this.ConnectionIsOpen)
318                  {                  {
319                      foreach (string strCmd in strCommands)                      if (!ClientRunScript(strCommands, out ErrorInfo))
320                      {                      {
321                          if (strCmd.Length > 0)                          return false;
                         {  
                             // Substitute database directory with the decided one.  
                             DBCommand command = this.CreateCommandInstance(strCmd, new List<DBParameter>(), out ErrorInfo);  
                             command.ExecuteNonQuery();  
                         }  
322                      }                      }
                     return true;  
323                  }                  }
324                  else                  else
325                  {                  {
326                      Logging.ATSAdminLog.Fatal(string.Format("Failed to run script: [database connection is not open] {0}{1}", System.Environment.NewLine, strFile));                      Logging.DatabaseLog.Fatal(string.Format("Failed to run script: [database connection is not open] {0}{1}", System.Environment.NewLine, strFile));
327                      return false;                      return false;
328                  }                  }
329              }              }
# Line 335  namespace AnywhereTS.DBSupport Line 345  namespace AnywhereTS.DBSupport
345              }              }
346              return false;              return false;
347          }          }
348            public abstract bool ClientRunScript(string[] strCommands, out Exception ErrorInfo);
349          #endregion          #endregion
350          #endregion          #endregion
351    

Legend:
Removed from v.89  
changed lines
  Added in v.121

  ViewVC Help
Powered by ViewVC 1.1.22