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(); |
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(); |
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: |
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; |
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 |
|
|
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 |