aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Data/SQLite/SQLiteEstateData.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Data/SQLite/SQLiteEstateData.cs')
-rw-r--r--OpenSim/Data/SQLite/SQLiteEstateData.cs206
1 files changed, 112 insertions, 94 deletions
diff --git a/OpenSim/Data/SQLite/SQLiteEstateData.cs b/OpenSim/Data/SQLite/SQLiteEstateData.cs
index c042ba2..d51f2d4 100644
--- a/OpenSim/Data/SQLite/SQLiteEstateData.cs
+++ b/OpenSim/Data/SQLite/SQLiteEstateData.cs
@@ -104,12 +104,13 @@ namespace OpenSim.Data.SQLite
104 { 104 {
105 string sql = "select estate_settings."+String.Join(",estate_settings.", FieldList)+" from estate_map left join estate_settings on estate_map.EstateID = estate_settings.EstateID where estate_settings.EstateID is not null and RegionID = :RegionID"; 105 string sql = "select estate_settings."+String.Join(",estate_settings.", FieldList)+" from estate_map left join estate_settings on estate_map.EstateID = estate_settings.EstateID where estate_settings.EstateID is not null and RegionID = :RegionID";
106 106
107 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 107 using (SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand())
108 108 {
109 cmd.CommandText = sql; 109 cmd.CommandText = sql;
110 cmd.Parameters.AddWithValue(":RegionID", regionID.ToString()); 110 cmd.Parameters.AddWithValue(":RegionID", regionID.ToString());
111 111
112 return DoLoad(cmd, regionID, create); 112 return DoLoad(cmd, regionID, create);
113 }
113 } 114 }
114 115
115 private EstateSettings DoLoad(SqliteCommand cmd, UUID regionID, bool create) 116 private EstateSettings DoLoad(SqliteCommand cmd, UUID regionID, bool create)
@@ -186,37 +187,39 @@ namespace OpenSim.Data.SQLite
186 { 187 {
187 List<string> names = new List<string>(FieldList); 188 List<string> names = new List<string>(FieldList);
188 189
189 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
190 IDataReader r = null; 190 IDataReader r = null;
191 191
192 names.Remove("EstateID"); 192 using (SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand())
193 {
194 names.Remove("EstateID");
193 195
194 string sql = "insert into estate_settings ("+String.Join(",", names.ToArray())+") values ( :"+String.Join(", :", names.ToArray())+")"; 196 string sql = "insert into estate_settings ("+String.Join(",", names.ToArray())+") values ( :"+String.Join(", :", names.ToArray())+")";
195 197
196 cmd.CommandText = sql; 198 cmd.CommandText = sql;
197 cmd.Parameters.Clear(); 199 cmd.Parameters.Clear();
198 200
199 foreach (string name in FieldList) 201 foreach (string name in FieldList)
200 {
201 if (m_FieldMap[name].GetValue(es) is bool)
202 { 202 {
203 if ((bool)m_FieldMap[name].GetValue(es)) 203 if (m_FieldMap[name].GetValue(es) is bool)
204 cmd.Parameters.AddWithValue(":"+name, "1"); 204 {
205 if ((bool)m_FieldMap[name].GetValue(es))
206 cmd.Parameters.AddWithValue(":"+name, "1");
207 else
208 cmd.Parameters.AddWithValue(":"+name, "0");
209 }
205 else 210 else
206 cmd.Parameters.AddWithValue(":"+name, "0"); 211 {
207 } 212 cmd.Parameters.AddWithValue(":"+name, m_FieldMap[name].GetValue(es).ToString());
208 else 213 }
209 {
210 cmd.Parameters.AddWithValue(":"+name, m_FieldMap[name].GetValue(es).ToString());
211 } 214 }
212 }
213 215
214 cmd.ExecuteNonQuery(); 216 cmd.ExecuteNonQuery();
215 217
216 cmd.CommandText = "select LAST_INSERT_ROWID() as id"; 218 cmd.CommandText = "select LAST_INSERT_ROWID() as id";
217 cmd.Parameters.Clear(); 219 cmd.Parameters.Clear();
218 220
219 r = cmd.ExecuteReader(); 221 r = cmd.ExecuteReader();
222 }
220 223
221 r.Read(); 224 r.Read();
222 225
@@ -239,26 +242,27 @@ namespace OpenSim.Data.SQLite
239 242
240 string sql = "update estate_settings set "+String.Join(", ", terms.ToArray())+" where EstateID = :EstateID"; 243 string sql = "update estate_settings set "+String.Join(", ", terms.ToArray())+" where EstateID = :EstateID";
241 244
242 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 245 using (SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand())
243
244 cmd.CommandText = sql;
245
246 foreach (string name in FieldList)
247 { 246 {
248 if (m_FieldMap[name].GetValue(es) is bool) 247 cmd.CommandText = sql;
248
249 foreach (string name in FieldList)
249 { 250 {
250 if ((bool)m_FieldMap[name].GetValue(es)) 251 if (m_FieldMap[name].GetValue(es) is bool)
251 cmd.Parameters.AddWithValue(":"+name, "1"); 252 {
253 if ((bool)m_FieldMap[name].GetValue(es))
254 cmd.Parameters.AddWithValue(":"+name, "1");
255 else
256 cmd.Parameters.AddWithValue(":"+name, "0");
257 }
252 else 258 else
253 cmd.Parameters.AddWithValue(":"+name, "0"); 259 {
254 } 260 cmd.Parameters.AddWithValue(":"+name, m_FieldMap[name].GetValue(es).ToString());
255 else 261 }
256 {
257 cmd.Parameters.AddWithValue(":"+name, m_FieldMap[name].GetValue(es).ToString());
258 } 262 }
259 }
260 263
261 cmd.ExecuteNonQuery(); 264 cmd.ExecuteNonQuery();
265 }
262 266
263 SaveBanList(es); 267 SaveBanList(es);
264 SaveUUIDList(es.EstateID, "estate_managers", es.EstateManagers); 268 SaveUUIDList(es.EstateID, "estate_managers", es.EstateManagers);
@@ -270,12 +274,15 @@ namespace OpenSim.Data.SQLite
270 { 274 {
271 es.ClearBans(); 275 es.ClearBans();
272 276
273 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 277 IDataReader r;
274 278
275 cmd.CommandText = "select bannedUUID from estateban where EstateID = :EstateID"; 279 using (SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand())
276 cmd.Parameters.AddWithValue(":EstateID", es.EstateID); 280 {
281 cmd.CommandText = "select bannedUUID from estateban where EstateID = :EstateID";
282 cmd.Parameters.AddWithValue(":EstateID", es.EstateID);
277 283
278 IDataReader r = cmd.ExecuteReader(); 284 r = cmd.ExecuteReader();
285 }
279 286
280 while (r.Read()) 287 while (r.Read())
281 { 288 {
@@ -294,60 +301,64 @@ namespace OpenSim.Data.SQLite
294 301
295 private void SaveBanList(EstateSettings es) 302 private void SaveBanList(EstateSettings es)
296 { 303 {
297 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 304 using (SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand())
298
299 cmd.CommandText = "delete from estateban where EstateID = :EstateID";
300 cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString());
301
302 cmd.ExecuteNonQuery();
303
304 cmd.Parameters.Clear();
305
306 cmd.CommandText = "insert into estateban (EstateID, bannedUUID, bannedIp, bannedIpHostMask, bannedNameMask) values ( :EstateID, :bannedUUID, '', '', '' )";
307
308 foreach (EstateBan b in es.EstateBans)
309 { 305 {
306 cmd.CommandText = "delete from estateban where EstateID = :EstateID";
310 cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString()); 307 cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString());
311 cmd.Parameters.AddWithValue(":bannedUUID", b.BannedUserID.ToString());
312 308
313 cmd.ExecuteNonQuery(); 309 cmd.ExecuteNonQuery();
310
314 cmd.Parameters.Clear(); 311 cmd.Parameters.Clear();
312
313 cmd.CommandText = "insert into estateban (EstateID, bannedUUID, bannedIp, bannedIpHostMask, bannedNameMask) values ( :EstateID, :bannedUUID, '', '', '' )";
314
315 foreach (EstateBan b in es.EstateBans)
316 {
317 cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString());
318 cmd.Parameters.AddWithValue(":bannedUUID", b.BannedUserID.ToString());
319
320 cmd.ExecuteNonQuery();
321 cmd.Parameters.Clear();
322 }
315 } 323 }
316 } 324 }
317 325
318 void SaveUUIDList(uint EstateID, string table, UUID[] data) 326 void SaveUUIDList(uint EstateID, string table, UUID[] data)
319 { 327 {
320 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 328 using (SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand())
321
322 cmd.CommandText = "delete from "+table+" where EstateID = :EstateID";
323 cmd.Parameters.AddWithValue(":EstateID", EstateID.ToString());
324
325 cmd.ExecuteNonQuery();
326
327 cmd.Parameters.Clear();
328
329 cmd.CommandText = "insert into "+table+" (EstateID, uuid) values ( :EstateID, :uuid )";
330
331 foreach (UUID uuid in data)
332 { 329 {
330 cmd.CommandText = "delete from "+table+" where EstateID = :EstateID";
333 cmd.Parameters.AddWithValue(":EstateID", EstateID.ToString()); 331 cmd.Parameters.AddWithValue(":EstateID", EstateID.ToString());
334 cmd.Parameters.AddWithValue(":uuid", uuid.ToString());
335 332
336 cmd.ExecuteNonQuery(); 333 cmd.ExecuteNonQuery();
334
337 cmd.Parameters.Clear(); 335 cmd.Parameters.Clear();
336
337 cmd.CommandText = "insert into "+table+" (EstateID, uuid) values ( :EstateID, :uuid )";
338
339 foreach (UUID uuid in data)
340 {
341 cmd.Parameters.AddWithValue(":EstateID", EstateID.ToString());
342 cmd.Parameters.AddWithValue(":uuid", uuid.ToString());
343
344 cmd.ExecuteNonQuery();
345 cmd.Parameters.Clear();
346 }
338 } 347 }
339 } 348 }
340 349
341 UUID[] LoadUUIDList(uint EstateID, string table) 350 UUID[] LoadUUIDList(uint EstateID, string table)
342 { 351 {
343 List<UUID> uuids = new List<UUID>(); 352 List<UUID> uuids = new List<UUID>();
353 IDataReader r;
344 354
345 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 355 using (SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand())
346 356 {
347 cmd.CommandText = "select uuid from "+table+" where EstateID = :EstateID"; 357 cmd.CommandText = "select uuid from "+table+" where EstateID = :EstateID";
348 cmd.Parameters.AddWithValue(":EstateID", EstateID); 358 cmd.Parameters.AddWithValue(":EstateID", EstateID);
349 359
350 IDataReader r = cmd.ExecuteReader(); 360 r = cmd.ExecuteReader();
361 }
351 362
352 while (r.Read()) 363 while (r.Read())
353 { 364 {
@@ -367,12 +378,13 @@ namespace OpenSim.Data.SQLite
367 { 378 {
368 string sql = "select estate_settings."+String.Join(",estate_settings.", FieldList)+" from estate_settings where estate_settings.EstateID = :EstateID"; 379 string sql = "select estate_settings."+String.Join(",estate_settings.", FieldList)+" from estate_settings where estate_settings.EstateID = :EstateID";
369 380
370 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 381 using (SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand())
371 382 {
372 cmd.CommandText = sql; 383 cmd.CommandText = sql;
373 cmd.Parameters.AddWithValue(":EstateID", estateID.ToString()); 384 cmd.Parameters.AddWithValue(":EstateID", estateID.ToString());
374 385
375 return DoLoad(cmd, UUID.Zero, false); 386 return DoLoad(cmd, UUID.Zero, false);
387 }
376 } 388 }
377 389
378 public List<EstateSettings> LoadEstateSettingsAll() 390 public List<EstateSettings> LoadEstateSettingsAll()
@@ -391,13 +403,15 @@ namespace OpenSim.Data.SQLite
391 List<int> result = new List<int>(); 403 List<int> result = new List<int>();
392 404
393 string sql = "select EstateID from estate_settings where estate_settings.EstateName = :EstateName"; 405 string sql = "select EstateID from estate_settings where estate_settings.EstateName = :EstateName";
406 IDataReader r;
394 407
395 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 408 using (SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand())
396 409 {
397 cmd.CommandText = sql; 410 cmd.CommandText = sql;
398 cmd.Parameters.AddWithValue(":EstateName", search); 411 cmd.Parameters.AddWithValue(":EstateName", search);
399 412
400 IDataReader r = cmd.ExecuteReader(); 413 r = cmd.ExecuteReader();
414 }
401 415
402 while (r.Read()) 416 while (r.Read())
403 { 417 {
@@ -413,12 +427,14 @@ namespace OpenSim.Data.SQLite
413 List<int> result = new List<int>(); 427 List<int> result = new List<int>();
414 428
415 string sql = "select EstateID from estate_settings"; 429 string sql = "select EstateID from estate_settings";
430 IDataReader r;
416 431
417 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 432 using (SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand())
418 433 {
419 cmd.CommandText = sql; 434 cmd.CommandText = sql;
420 435
421 IDataReader r = cmd.ExecuteReader(); 436 r = cmd.ExecuteReader();
437 }
422 438
423 while (r.Read()) 439 while (r.Read())
424 { 440 {
@@ -434,13 +450,15 @@ namespace OpenSim.Data.SQLite
434 List<int> result = new List<int>(); 450 List<int> result = new List<int>();
435 451
436 string sql = "select EstateID from estate_settings where estate_settings.EstateOwner = :EstateOwner"; 452 string sql = "select EstateID from estate_settings where estate_settings.EstateOwner = :EstateOwner";
453 IDataReader r;
437 454
438 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 455 using (SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand())
439 456 {
440 cmd.CommandText = sql; 457 cmd.CommandText = sql;
441 cmd.Parameters.AddWithValue(":EstateOwner", ownerID); 458 cmd.Parameters.AddWithValue(":EstateOwner", ownerID);
442 459
443 IDataReader r = cmd.ExecuteReader(); 460 r = cmd.ExecuteReader();
461 }
444 462
445 while (r.Read()) 463 while (r.Read())
446 { 464 {