aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Data.SQLite/SQLiteUserData.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Framework/Data.SQLite/SQLiteUserData.cs')
-rw-r--r--OpenSim/Framework/Data.SQLite/SQLiteUserData.cs261
1 files changed, 139 insertions, 122 deletions
diff --git a/OpenSim/Framework/Data.SQLite/SQLiteUserData.cs b/OpenSim/Framework/Data.SQLite/SQLiteUserData.cs
index 37a8be5..d7a6b39 100644
--- a/OpenSim/Framework/Data.SQLite/SQLiteUserData.cs
+++ b/OpenSim/Framework/Data.SQLite/SQLiteUserData.cs
@@ -26,12 +26,8 @@
26* 26*
27*/ 27*/
28using System; 28using System;
29using System.IO;
30using libsecondlife;
31using OpenSim.Framework;
32using OpenSim.Framework;
33using System.Data; 29using System.Data;
34using System.Data.SqlTypes; 30using libsecondlife;
35using Mono.Data.SqliteClient; 31using Mono.Data.SqliteClient;
36using OpenSim.Framework.Console; 32using OpenSim.Framework.Console;
37 33
@@ -45,30 +41,31 @@ namespace OpenSim.Framework.Data.SQLite
45 /// <summary> 41 /// <summary>
46 /// The database manager 42 /// The database manager
47 /// </summary> 43 /// </summary>
48
49 /// <summary> 44 /// <summary>
50 /// Artificial constructor called upon plugin load 45 /// Artificial constructor called upon plugin load
51 /// </summary> 46 /// </summary>
52 private const string userSelect = "select * from users"; 47 private const string userSelect = "select * from users";
48
53 private DataSet ds; 49 private DataSet ds;
54 private SqliteDataAdapter da; 50 private SqliteDataAdapter da;
55 51
56 public void Initialise() 52 public void Initialise()
57 { 53 {
58 SqliteConnection conn = new SqliteConnection("URI=file:userprofiles.db,version=3"); 54 SqliteConnection conn = new SqliteConnection("URI=file:userprofiles.db,version=3");
59 TestTables(conn); 55 TestTables(conn);
60 56
61 ds = new DataSet(); 57 ds = new DataSet();
62 da = new SqliteDataAdapter(new SqliteCommand(userSelect, conn)); 58 da = new SqliteDataAdapter(new SqliteCommand(userSelect, conn));
63 59
64 lock (ds) { 60 lock (ds)
61 {
65 ds.Tables.Add(createUsersTable()); 62 ds.Tables.Add(createUsersTable());
66 ds.Tables.Add(createUserAgentsTable()); 63 ds.Tables.Add(createUserAgentsTable());
67 64
68 setupUserCommands(da, conn); 65 setupUserCommands(da, conn);
69 da.Fill(ds.Tables["users"]); 66 da.Fill(ds.Tables["users"]);
70 } 67 }
71 68
72 return; 69 return;
73 } 70 }
74 71
@@ -79,16 +76,21 @@ namespace OpenSim.Framework.Data.SQLite
79 /// <returns>A user profile</returns> 76 /// <returns>A user profile</returns>
80 public UserProfileData GetUserByUUID(LLUUID uuid) 77 public UserProfileData GetUserByUUID(LLUUID uuid)
81 { 78 {
82 lock (ds) { 79 lock (ds)
80 {
83 DataRow row = ds.Tables["users"].Rows.Find(uuid); 81 DataRow row = ds.Tables["users"].Rows.Find(uuid);
84 if(row != null) { 82 if (row != null)
83 {
85 UserProfileData user = buildUserProfile(row); 84 UserProfileData user = buildUserProfile(row);
86 row = ds.Tables["useragents"].Rows.Find(uuid); 85 row = ds.Tables["useragents"].Rows.Find(uuid);
87 if(row != null) { 86 if (row != null)
87 {
88 user.currentAgent = buildUserAgent(row); 88 user.currentAgent = buildUserAgent(row);
89 } 89 }
90 return user; 90 return user;
91 } else { 91 }
92 else
93 {
92 return null; 94 return null;
93 } 95 }
94 } 96 }
@@ -113,16 +115,21 @@ namespace OpenSim.Framework.Data.SQLite
113 public UserProfileData GetUserByName(string fname, string lname) 115 public UserProfileData GetUserByName(string fname, string lname)
114 { 116 {
115 string select = "surname = '" + lname + "' and username = '" + fname + "'"; 117 string select = "surname = '" + lname + "' and username = '" + fname + "'";
116 lock (ds) { 118 lock (ds)
119 {
117 DataRow[] rows = ds.Tables["users"].Select(select); 120 DataRow[] rows = ds.Tables["users"].Select(select);
118 if(rows.Length > 0) { 121 if (rows.Length > 0)
122 {
119 UserProfileData user = buildUserProfile(rows[0]); 123 UserProfileData user = buildUserProfile(rows[0]);
120 DataRow row = ds.Tables["useragents"].Rows.Find(user.UUID); 124 DataRow row = ds.Tables["useragents"].Rows.Find(user.UUID);
121 if(row != null) { 125 if (row != null)
126 {
122 user.currentAgent = buildUserAgent(row); 127 user.currentAgent = buildUserAgent(row);
123 } 128 }
124 return user; 129 return user;
125 } else { 130 }
131 else
132 {
126 return null; 133 return null;
127 } 134 }
128 } 135 }
@@ -134,7 +141,7 @@ namespace OpenSim.Framework.Data.SQLite
134 /// <param name="uuid">The users account ID</param> 141 /// <param name="uuid">The users account ID</param>
135 /// <returns>A matching users profile</returns> 142 /// <returns>A matching users profile</returns>
136 public UserAgentData GetAgentByUUID(LLUUID uuid) 143 public UserAgentData GetAgentByUUID(LLUUID uuid)
137 { 144 {
138 try 145 try
139 { 146 {
140 return GetUserByUUID(uuid).currentAgent; 147 return GetUserByUUID(uuid).currentAgent;
@@ -165,7 +172,7 @@ namespace OpenSim.Framework.Data.SQLite
165 { 172 {
166 try 173 try
167 { 174 {
168 return GetUserByName(fname,lname).currentAgent; 175 return GetUserByName(fname, lname).currentAgent;
169 } 176 }
170 catch (Exception) 177 catch (Exception)
171 { 178 {
@@ -180,8 +187,9 @@ namespace OpenSim.Framework.Data.SQLite
180 public void AddNewUserProfile(UserProfileData user) 187 public void AddNewUserProfile(UserProfileData user)
181 { 188 {
182 DataTable users = ds.Tables["users"]; 189 DataTable users = ds.Tables["users"];
183 lock (ds) { 190 lock (ds)
184 DataRow row = users.Rows.Find(user.UUID); 191 {
192 DataRow row = users.Rows.Find(user.UUID);
185 if (row == null) 193 if (row == null)
186 { 194 {
187 row = users.NewRow(); 195 row = users.NewRow();
@@ -192,10 +200,11 @@ namespace OpenSim.Framework.Data.SQLite
192 { 200 {
193 fillUserRow(row, user); 201 fillUserRow(row, user);
194 } 202 }
195 203
196 if(user.currentAgent != null) { 204 if (user.currentAgent != null)
205 {
197 DataTable ua = ds.Tables["useragents"]; 206 DataTable ua = ds.Tables["useragents"];
198 row = ua.Rows.Find(user.UUID); 207 row = ua.Rows.Find(user.UUID);
199 if (row == null) 208 if (row == null)
200 { 209 {
201 row = ua.NewRow(); 210 row = ua.NewRow();
@@ -207,12 +216,13 @@ namespace OpenSim.Framework.Data.SQLite
207 fillUserAgentRow(row, user.currentAgent); 216 fillUserAgentRow(row, user.currentAgent);
208 } 217 }
209 } 218 }
210 MainLog.Instance.Verbose("SQLITE", "Syncing user database: " + ds.Tables["users"].Rows.Count + " users stored"); 219 MainLog.Instance.Verbose("SQLITE",
220 "Syncing user database: " + ds.Tables["users"].Rows.Count + " users stored");
211 // save changes off to disk 221 // save changes off to disk
212 da.Update(ds, "users"); 222 da.Update(ds, "users");
213 } 223 }
214 } 224 }
215 225
216 /// <summary> 226 /// <summary>
217 /// Creates a new user profile 227 /// Creates a new user profile
218 /// </summary> 228 /// </summary>
@@ -220,10 +230,13 @@ namespace OpenSim.Framework.Data.SQLite
220 /// <returns>True on success, false on error</returns> 230 /// <returns>True on success, false on error</returns>
221 public bool UpdateUserProfile(UserProfileData user) 231 public bool UpdateUserProfile(UserProfileData user)
222 { 232 {
223 try { 233 try
234 {
224 AddNewUserProfile(user); 235 AddNewUserProfile(user);
225 return true; 236 return true;
226 } catch (Exception) { 237 }
238 catch (Exception)
239 {
227 return false; 240 return false;
228 } 241 }
229 } 242 }
@@ -279,51 +292,51 @@ namespace OpenSim.Framework.Data.SQLite
279 { 292 {
280 return "0.1"; 293 return "0.1";
281 } 294 }
282 295
283 /*********************************************************************** 296 /***********************************************************************
284 * 297 *
285 * DataTable creation 298 * DataTable creation
286 * 299 *
287 **********************************************************************/ 300 **********************************************************************/
288 /*********************************************************************** 301 /***********************************************************************
289 * 302 *
290 * Database Definition Functions 303 * Database Definition Functions
291 * 304 *
292 * This should be db agnostic as we define them in ADO.NET terms 305 * This should be db agnostic as we define them in ADO.NET terms
293 * 306 *
294 **********************************************************************/ 307 **********************************************************************/
295 308
296 private DataTable createUsersTable() 309 private DataTable createUsersTable()
297 { 310 {
298 DataTable users = new DataTable("users"); 311 DataTable users = new DataTable("users");
299 312
300 createCol(users, "UUID", typeof(System.String)); 313 createCol(users, "UUID", typeof (String));
301 createCol(users, "username", typeof(System.String)); 314 createCol(users, "username", typeof (String));
302 createCol(users, "surname", typeof(System.String)); 315 createCol(users, "surname", typeof (String));
303 createCol(users, "passwordHash", typeof(System.String)); 316 createCol(users, "passwordHash", typeof (String));
304 createCol(users, "passwordSalt", typeof(System.String)); 317 createCol(users, "passwordSalt", typeof (String));
305 318
306 createCol(users, "homeRegionX", typeof(System.Int32)); 319 createCol(users, "homeRegionX", typeof (Int32));
307 createCol(users, "homeRegionY", typeof(System.Int32)); 320 createCol(users, "homeRegionY", typeof (Int32));
308 createCol(users, "homeLocationX", typeof(System.Double)); 321 createCol(users, "homeLocationX", typeof (Double));
309 createCol(users, "homeLocationY", typeof(System.Double)); 322 createCol(users, "homeLocationY", typeof (Double));
310 createCol(users, "homeLocationZ", typeof(System.Double)); 323 createCol(users, "homeLocationZ", typeof (Double));
311 createCol(users, "homeLookAtX", typeof(System.Double)); 324 createCol(users, "homeLookAtX", typeof (Double));
312 createCol(users, "homeLookAtY", typeof(System.Double)); 325 createCol(users, "homeLookAtY", typeof (Double));
313 createCol(users, "homeLookAtZ", typeof(System.Double)); 326 createCol(users, "homeLookAtZ", typeof (Double));
314 createCol(users, "created", typeof(System.Int32)); 327 createCol(users, "created", typeof (Int32));
315 createCol(users, "lastLogin", typeof(System.Int32)); 328 createCol(users, "lastLogin", typeof (Int32));
316 createCol(users, "rootInventoryFolderID", typeof(System.String)); 329 createCol(users, "rootInventoryFolderID", typeof (String));
317 createCol(users, "userInventoryURI", typeof(System.String)); 330 createCol(users, "userInventoryURI", typeof (String));
318 createCol(users, "userAssetURI", typeof(System.String)); 331 createCol(users, "userAssetURI", typeof (String));
319 createCol(users, "profileCanDoMask", typeof(System.Int32)); 332 createCol(users, "profileCanDoMask", typeof (Int32));
320 createCol(users, "profileWantDoMask", typeof(System.Int32)); 333 createCol(users, "profileWantDoMask", typeof (Int32));
321 createCol(users, "profileAboutText", typeof(System.String)); 334 createCol(users, "profileAboutText", typeof (String));
322 createCol(users, "profileFirstText", typeof(System.String)); 335 createCol(users, "profileFirstText", typeof (String));
323 createCol(users, "profileImage", typeof(System.String)); 336 createCol(users, "profileImage", typeof (String));
324 createCol(users, "profileFirstImage", typeof(System.String)); 337 createCol(users, "profileFirstImage", typeof (String));
325 // Add in contraints 338 // Add in contraints
326 users.PrimaryKey = new DataColumn[] { users.Columns["UUID"] }; 339 users.PrimaryKey = new DataColumn[] {users.Columns["UUID"]};
327 return users; 340 return users;
328 } 341 }
329 342
@@ -331,27 +344,27 @@ namespace OpenSim.Framework.Data.SQLite
331 { 344 {
332 DataTable ua = new DataTable("useragents"); 345 DataTable ua = new DataTable("useragents");
333 // this is the UUID of the user 346 // this is the UUID of the user
334 createCol(ua, "UUID", typeof(System.String)); 347 createCol(ua, "UUID", typeof (String));
335 createCol(ua, "agentIP", typeof(System.String)); 348 createCol(ua, "agentIP", typeof (String));
336 createCol(ua, "agentPort", typeof(System.Int32)); 349 createCol(ua, "agentPort", typeof (Int32));
337 createCol(ua, "agentOnline", typeof(System.Boolean)); 350 createCol(ua, "agentOnline", typeof (Boolean));
338 createCol(ua, "sessionID", typeof(System.String)); 351 createCol(ua, "sessionID", typeof (String));
339 createCol(ua, "secureSessionID", typeof(System.String)); 352 createCol(ua, "secureSessionID", typeof (String));
340 createCol(ua, "regionID", typeof(System.String)); 353 createCol(ua, "regionID", typeof (String));
341 createCol(ua, "loginTime", typeof(System.Int32)); 354 createCol(ua, "loginTime", typeof (Int32));
342 createCol(ua, "logoutTime", typeof(System.Int32)); 355 createCol(ua, "logoutTime", typeof (Int32));
343 createCol(ua, "currentRegion", typeof(System.String)); 356 createCol(ua, "currentRegion", typeof (String));
344 createCol(ua, "currentHandle", typeof(System.Int32)); 357 createCol(ua, "currentHandle", typeof (Int32));
345 // vectors 358 // vectors
346 createCol(ua, "currentPosX", typeof(System.Double)); 359 createCol(ua, "currentPosX", typeof (Double));
347 createCol(ua, "currentPosY", typeof(System.Double)); 360 createCol(ua, "currentPosY", typeof (Double));
348 createCol(ua, "currentPosZ", typeof(System.Double)); 361 createCol(ua, "currentPosZ", typeof (Double));
349 // constraints 362 // constraints
350 ua.PrimaryKey = new DataColumn[] { ua.Columns["UUID"] }; 363 ua.PrimaryKey = new DataColumn[] {ua.Columns["UUID"]};
351 364
352 return ua; 365 return ua;
353 } 366 }
354 367
355 /*********************************************************************** 368 /***********************************************************************
356 * 369 *
357 * Convert between ADO.NET <=> OpenSim Objects 370 * Convert between ADO.NET <=> OpenSim Objects
@@ -366,35 +379,35 @@ namespace OpenSim.Framework.Data.SQLite
366 // interesting has to be done to actually get these values 379 // interesting has to be done to actually get these values
367 // back out. Not enough time to figure it out yet. 380 // back out. Not enough time to figure it out yet.
368 UserProfileData user = new UserProfileData(); 381 UserProfileData user = new UserProfileData();
369 user.UUID = new LLUUID((String)row["UUID"]); 382 user.UUID = new LLUUID((String) row["UUID"]);
370 user.username = (String)row["username"]; 383 user.username = (String) row["username"];
371 user.surname = (String)row["surname"]; 384 user.surname = (String) row["surname"];
372 user.passwordHash = (String)row["passwordHash"]; 385 user.passwordHash = (String) row["passwordHash"];
373 user.passwordSalt = (String)row["passwordSalt"]; 386 user.passwordSalt = (String) row["passwordSalt"];
374 387
375 user.homeRegionX = Convert.ToUInt32(row["homeRegionX"]); 388 user.homeRegionX = Convert.ToUInt32(row["homeRegionX"]);
376 user.homeRegionY = Convert.ToUInt32(row["homeRegionY"]); 389 user.homeRegionY = Convert.ToUInt32(row["homeRegionY"]);
377 user.homeLocation = new LLVector3( 390 user.homeLocation = new LLVector3(
378 Convert.ToSingle(row["homeLocationX"]), 391 Convert.ToSingle(row["homeLocationX"]),
379 Convert.ToSingle(row["homeLocationY"]), 392 Convert.ToSingle(row["homeLocationY"]),
380 Convert.ToSingle(row["homeLocationZ"]) 393 Convert.ToSingle(row["homeLocationZ"])
381 ); 394 );
382 user.homeLookAt = new LLVector3( 395 user.homeLookAt = new LLVector3(
383 Convert.ToSingle(row["homeLookAtX"]), 396 Convert.ToSingle(row["homeLookAtX"]),
384 Convert.ToSingle(row["homeLookAtY"]), 397 Convert.ToSingle(row["homeLookAtY"]),
385 Convert.ToSingle(row["homeLookAtZ"]) 398 Convert.ToSingle(row["homeLookAtZ"])
386 ); 399 );
387 user.created = Convert.ToInt32(row["created"]); 400 user.created = Convert.ToInt32(row["created"]);
388 user.lastLogin = Convert.ToInt32(row["lastLogin"]); 401 user.lastLogin = Convert.ToInt32(row["lastLogin"]);
389 user.rootInventoryFolderID = new LLUUID((String)row["rootInventoryFolderID"]); 402 user.rootInventoryFolderID = new LLUUID((String) row["rootInventoryFolderID"]);
390 user.userInventoryURI = (String)row["userInventoryURI"]; 403 user.userInventoryURI = (String) row["userInventoryURI"];
391 user.userAssetURI = (String)row["userAssetURI"]; 404 user.userAssetURI = (String) row["userAssetURI"];
392 user.profileCanDoMask = Convert.ToUInt32(row["profileCanDoMask"]); 405 user.profileCanDoMask = Convert.ToUInt32(row["profileCanDoMask"]);
393 user.profileWantDoMask = Convert.ToUInt32(row["profileWantDoMask"]); 406 user.profileWantDoMask = Convert.ToUInt32(row["profileWantDoMask"]);
394 user.profileAboutText = (String)row["profileAboutText"]; 407 user.profileAboutText = (String) row["profileAboutText"];
395 user.profileFirstText = (String)row["profileFirstText"]; 408 user.profileFirstText = (String) row["profileFirstText"];
396 user.profileImage = new LLUUID((String)row["profileImage"]); 409 user.profileImage = new LLUUID((String) row["profileImage"]);
397 user.profileFirstImage = new LLUUID((String)row["profileFirstImage"]); 410 user.profileFirstImage = new LLUUID((String) row["profileFirstImage"]);
398 return user; 411 return user;
399 } 412 }
400 413
@@ -405,8 +418,8 @@ namespace OpenSim.Framework.Data.SQLite
405 row["surname"] = user.surname; 418 row["surname"] = user.surname;
406 row["passwordHash"] = user.passwordHash; 419 row["passwordHash"] = user.passwordHash;
407 row["passwordSalt"] = user.passwordSalt; 420 row["passwordSalt"] = user.passwordSalt;
408 421
409 422
410 row["homeRegionX"] = user.homeRegionX; 423 row["homeRegionX"] = user.homeRegionX;
411 row["homeRegionY"] = user.homeRegionY; 424 row["homeRegionY"] = user.homeRegionY;
412 row["homeLocationX"] = user.homeLocation.X; 425 row["homeLocationX"] = user.homeLocation.X;
@@ -427,10 +440,12 @@ namespace OpenSim.Framework.Data.SQLite
427 row["profileFirstText"] = user.profileFirstText; 440 row["profileFirstText"] = user.profileFirstText;
428 row["profileImage"] = user.profileImage; 441 row["profileImage"] = user.profileImage;
429 row["profileFirstImage"] = user.profileFirstImage; 442 row["profileFirstImage"] = user.profileFirstImage;
430 443
431 // ADO.NET doesn't handle NULL very well 444 // ADO.NET doesn't handle NULL very well
432 foreach (DataColumn col in ds.Tables["users"].Columns) { 445 foreach (DataColumn col in ds.Tables["users"].Columns)
433 if (row[col] == null) { 446 {
447 if (row[col] == null)
448 {
434 row[col] = ""; 449 row[col] = "";
435 } 450 }
436 } 451 }
@@ -439,33 +454,33 @@ namespace OpenSim.Framework.Data.SQLite
439 private UserAgentData buildUserAgent(DataRow row) 454 private UserAgentData buildUserAgent(DataRow row)
440 { 455 {
441 UserAgentData ua = new UserAgentData(); 456 UserAgentData ua = new UserAgentData();
442 457
443 ua.UUID = new LLUUID((String)row["UUID"]); 458 ua.UUID = new LLUUID((String) row["UUID"]);
444 ua.agentIP = (String)row["agentIP"]; 459 ua.agentIP = (String) row["agentIP"];
445 ua.agentPort = Convert.ToUInt32(row["agentPort"]); 460 ua.agentPort = Convert.ToUInt32(row["agentPort"]);
446 ua.agentOnline = Convert.ToBoolean(row["agentOnline"]); 461 ua.agentOnline = Convert.ToBoolean(row["agentOnline"]);
447 ua.sessionID = new LLUUID((String)row["sessionID"]); 462 ua.sessionID = new LLUUID((String) row["sessionID"]);
448 ua.secureSessionID = new LLUUID((String)row["secureSessionID"]); 463 ua.secureSessionID = new LLUUID((String) row["secureSessionID"]);
449 ua.regionID = new LLUUID((String)row["regionID"]); 464 ua.regionID = new LLUUID((String) row["regionID"]);
450 ua.loginTime = Convert.ToInt32(row["loginTime"]); 465 ua.loginTime = Convert.ToInt32(row["loginTime"]);
451 ua.logoutTime = Convert.ToInt32(row["logoutTime"]); 466 ua.logoutTime = Convert.ToInt32(row["logoutTime"]);
452 ua.currentRegion = new LLUUID((String)row["currentRegion"]); 467 ua.currentRegion = new LLUUID((String) row["currentRegion"]);
453 ua.currentHandle = Convert.ToUInt32(row["currentHandle"]); 468 ua.currentHandle = Convert.ToUInt32(row["currentHandle"]);
454 ua.currentPos = new LLVector3( 469 ua.currentPos = new LLVector3(
455 Convert.ToSingle(row["currentPosX"]), 470 Convert.ToSingle(row["currentPosX"]),
456 Convert.ToSingle(row["currentPosY"]), 471 Convert.ToSingle(row["currentPosY"]),
457 Convert.ToSingle(row["currentPosZ"]) 472 Convert.ToSingle(row["currentPosZ"])
458 ); 473 );
459 return ua; 474 return ua;
460 } 475 }
461 476
462 private void fillUserAgentRow(DataRow row, UserAgentData ua) 477 private void fillUserAgentRow(DataRow row, UserAgentData ua)
463 { 478 {
464 row["UUID"] = ua.UUID; 479 row["UUID"] = ua.UUID;
465 row["agentIP"] = ua.agentIP; 480 row["agentIP"] = ua.agentIP;
466 row["agentPort"] = ua.agentPort; 481 row["agentPort"] = ua.agentPort;
467 row["agentOnline"] = ua.agentOnline; 482 row["agentOnline"] = ua.agentOnline;
468 row["sessionID"] = ua.sessionID; 483 row["sessionID"] = ua.sessionID;
469 row["secureSessionID"] = ua.secureSessionID; 484 row["secureSessionID"] = ua.secureSessionID;
470 row["regionID"] = ua.regionID; 485 row["regionID"] = ua.regionID;
471 row["loginTime"] = ua.loginTime; 486 row["loginTime"] = ua.loginTime;
@@ -496,18 +511,18 @@ namespace OpenSim.Framework.Data.SQLite
496 da.UpdateCommand.Connection = conn; 511 da.UpdateCommand.Connection = conn;
497 512
498 SqliteCommand delete = new SqliteCommand("delete from users where UUID = :UUID"); 513 SqliteCommand delete = new SqliteCommand("delete from users where UUID = :UUID");
499 delete.Parameters.Add(createSqliteParameter("UUID", typeof(System.String))); 514 delete.Parameters.Add(createSqliteParameter("UUID", typeof (String)));
500 delete.Connection = conn; 515 delete.Connection = conn;
501 da.DeleteCommand = delete; 516 da.DeleteCommand = delete;
502 } 517 }
503 518
504 private void InitDB(SqliteConnection conn) 519 private void InitDB(SqliteConnection conn)
505 { 520 {
506 string createUsers = defineTable(createUsersTable()); 521 string createUsers = defineTable(createUsersTable());
507 SqliteCommand pcmd = new SqliteCommand(createUsers, conn); 522 SqliteCommand pcmd = new SqliteCommand(createUsers, conn);
508 conn.Open(); 523 conn.Open();
509 pcmd.ExecuteNonQuery(); 524 pcmd.ExecuteNonQuery();
510 conn.Close(); 525 conn.Close();
511 } 526 }
512 527
513 private bool TestTables(SqliteConnection conn) 528 private bool TestTables(SqliteConnection conn)
@@ -515,14 +530,16 @@ namespace OpenSim.Framework.Data.SQLite
515 SqliteCommand cmd = new SqliteCommand(userSelect, conn); 530 SqliteCommand cmd = new SqliteCommand(userSelect, conn);
516 SqliteDataAdapter pDa = new SqliteDataAdapter(cmd); 531 SqliteDataAdapter pDa = new SqliteDataAdapter(cmd);
517 DataSet tmpDS = new DataSet(); 532 DataSet tmpDS = new DataSet();
518 try { 533 try
534 {
519 pDa.Fill(tmpDS, "users"); 535 pDa.Fill(tmpDS, "users");
520 } catch (Mono.Data.SqliteClient.SqliteSyntaxException) { 536 }
537 catch (SqliteSyntaxException)
538 {
521 MainLog.Instance.Verbose("DATASTORE", "SQLite Database doesn't exist... creating"); 539 MainLog.Instance.Verbose("DATASTORE", "SQLite Database doesn't exist... creating");
522 InitDB(conn); 540 InitDB(conn);
523 } 541 }
524 return true; 542 return true;
525 } 543 }
526
527 } 544 }
528} 545} \ No newline at end of file