ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/AnywhereTS-MSSQL/trunk/AnywhereTS.DBSupport/SqlMdfConnector.cs
Revision: 134
Committed: Sun Jul 15 05:13:20 2012 UTC (11 years, 4 months ago) by william
File size: 2682 byte(s)
Log Message:
+ fix errors in database
+ logon to 'master' database and refer to our database is sql statments
+ remove empty GO statements from end of .sql files

File Contents

# Content
1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4 using System.Data.SqlClient;
5 using System.Linq;
6 using System.Text.RegularExpressions;
7 namespace AnywhereTS.DBSupport
8 {
9 public class SqlMdfConnector : DBConnector<SqlParameter, SqlCommand, SqlConnection, SqlDataAdapter>
10 {
11 public SqlMdfConnector(string DBServerAddress, string DBServerInstance, string SqlMdf) : base(DBServerAddress, DBServerInstance, SqlMdf) { }
12
13 public override void CreateConnection(out Exception ErrorInfo)
14 {
15 ErrorInfo = null;
16 try
17 {
18 string connetionString = GetConnectionString();
19 using (log4net.NDC.Push(string.Format("connetionString={0}", connetionString)))
20 {
21 Logging.DatabaseLog.Debug("Creating Connection");
22 connection = new SqlConnection();
23 connection.ConnectionString = connetionString;
24 Logging.DatabaseLog.Debug("Created Connection");
25 }
26 }
27 //catch (SqlException ex) { Console.WriteLine(ex.ToString()); ErrorInfo = ex; throw ErrorInfo;}
28 catch (Exception ex) { Console.WriteLine(ex.ToString()); ErrorInfo = ex; throw ErrorInfo; }
29 }
30
31 new public static string GetConnectionString()
32 {
33 return string.Format(@"Data Source={0}\{1};AttachDbFilename=|DataDirectory|\{2};Integrated Security=SSPI", DBServerAddress, DBServerInstance, DBDatabase);
34 }
35
36 protected override bool ClientRunScript(string strFile, out Exception ErrorInfo)
37 {
38 ErrorInfo = null;
39 try
40 {
41 var commands = Regex.Split(strFile, string.Format(@"^GO{0}", System.Environment.NewLine), RegexOptions.IgnoreCase | RegexOptions.Multiline);
42 foreach (var command in commands)
43 {
44 Logging.DatabaseLog.DebugFormat("Current Command={0}", command);
45 SqlConnection sqlCon;
46 this.GetConnectionClone(out sqlCon, out ErrorInfo);
47 SqlCommand sqlcmd = new SqlCommand(command, this.connection);
48 sqlcmd.CommandText = command;
49 sqlcmd.Connection = sqlCon;
50 sqlcmd.CommandType = System.Data.CommandType.Text;
51 sqlcmd.ExecuteNonQuery();
52 }
53 return true;
54 }
55 catch (Exception ex)
56 {
57 ErrorInfo = ex;
58 throw ErrorInfo;
59 }
60 }
61 }
62 }