diff options
author | StrawberryFride | 2010-02-24 16:42:39 +0000 |
---|---|---|
committer | Melanie | 2010-02-24 15:50:44 +0000 |
commit | 2fa5694ec9857f208b6fe4d0890fd2ab8ac1b8bf (patch) | |
tree | 672ec2bb3e64b8f930faa9a87801ba9042e2d4f7 /OpenSim/Data/MSSQL/MSSQLInventoryData.cs | |
parent | Fixed typo that was affecting the BasicInventoryAccessModule (diff) | |
download | opensim-SC-2fa5694ec9857f208b6fe4d0890fd2ab8ac1b8bf.zip opensim-SC-2fa5694ec9857f208b6fe4d0890fd2ab8ac1b8bf.tar.gz opensim-SC-2fa5694ec9857f208b6fe4d0890fd2ab8ac1b8bf.tar.bz2 opensim-SC-2fa5694ec9857f208b6fe4d0890fd2ab8ac1b8bf.tar.xz |
MSSQL Additions for Presence Refactor branch. Most functionality tested and works, some outstanding issues around login location and border crossings on y axis.
Signed-off-by: Melanie <melanie@t-data.com>
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Data/MSSQL/MSSQLInventoryData.cs | 206 |
1 files changed, 103 insertions, 103 deletions
diff --git a/OpenSim/Data/MSSQL/MSSQLInventoryData.cs b/OpenSim/Data/MSSQL/MSSQLInventoryData.cs index 1482184..4815700 100644 --- a/OpenSim/Data/MSSQL/MSSQLInventoryData.cs +++ b/OpenSim/Data/MSSQL/MSSQLInventoryData.cs | |||
@@ -49,6 +49,7 @@ namespace OpenSim.Data.MSSQL | |||
49 | /// The database manager | 49 | /// The database manager |
50 | /// </summary> | 50 | /// </summary> |
51 | private MSSQLManager database; | 51 | private MSSQLManager database; |
52 | private string m_connectionString; | ||
52 | 53 | ||
53 | #region IPlugin members | 54 | #region IPlugin members |
54 | 55 | ||
@@ -66,24 +67,9 @@ namespace OpenSim.Data.MSSQL | |||
66 | /// <remarks>use mssql_connection.ini</remarks> | 67 | /// <remarks>use mssql_connection.ini</remarks> |
67 | public void Initialise(string connectionString) | 68 | public void Initialise(string connectionString) |
68 | { | 69 | { |
69 | if (!string.IsNullOrEmpty(connectionString)) | 70 | m_connectionString = connectionString; |
70 | { | 71 | database = new MSSQLManager(connectionString); |
71 | database = new MSSQLManager(connectionString); | 72 | |
72 | } | ||
73 | else | ||
74 | { | ||
75 | IniFile gridDataMSSqlFile = new IniFile("mssql_connection.ini"); | ||
76 | string settingDataSource = gridDataMSSqlFile.ParseFileReadValue("data_source"); | ||
77 | string settingInitialCatalog = gridDataMSSqlFile.ParseFileReadValue("initial_catalog"); | ||
78 | string settingPersistSecurityInfo = gridDataMSSqlFile.ParseFileReadValue("persist_security_info"); | ||
79 | string settingUserId = gridDataMSSqlFile.ParseFileReadValue("user_id"); | ||
80 | string settingPassword = gridDataMSSqlFile.ParseFileReadValue("password"); | ||
81 | |||
82 | database = | ||
83 | new MSSQLManager(settingDataSource, settingInitialCatalog, settingPersistSecurityInfo, settingUserId, | ||
84 | settingPassword); | ||
85 | } | ||
86 | |||
87 | //New migrations check of store | 73 | //New migrations check of store |
88 | database.CheckMigration(_migrationStore); | 74 | database.CheckMigration(_migrationStore); |
89 | } | 75 | } |
@@ -169,11 +155,13 @@ namespace OpenSim.Data.MSSQL | |||
169 | /// <returns>A folder class</returns> | 155 | /// <returns>A folder class</returns> |
170 | public InventoryFolderBase getInventoryFolder(UUID folderID) | 156 | public InventoryFolderBase getInventoryFolder(UUID folderID) |
171 | { | 157 | { |
172 | using (AutoClosingSqlCommand command = database.Query("SELECT * FROM inventoryfolders WHERE folderID = @folderID")) | 158 | string sql = "SELECT * FROM inventoryfolders WHERE folderID = @folderID"; |
159 | using (SqlConnection conn = new SqlConnection(m_connectionString)) | ||
160 | using (SqlCommand cmd = new SqlCommand(sql, conn)) | ||
173 | { | 161 | { |
174 | command.Parameters.Add(database.CreateParameter("folderID", folderID)); | 162 | cmd.Parameters.Add(database.CreateParameter("folderID", folderID)); |
175 | 163 | conn.Open(); | |
176 | using (IDataReader reader = command.ExecuteReader()) | 164 | using (SqlDataReader reader = cmd.ExecuteReader()) |
177 | { | 165 | { |
178 | if (reader.Read()) | 166 | if (reader.Read()) |
179 | { | 167 | { |
@@ -197,18 +185,19 @@ namespace OpenSim.Data.MSSQL | |||
197 | //Note this is changed so it opens only one connection to the database and not everytime it wants to get data. | 185 | //Note this is changed so it opens only one connection to the database and not everytime it wants to get data. |
198 | 186 | ||
199 | List<InventoryFolderBase> folders = new List<InventoryFolderBase>(); | 187 | List<InventoryFolderBase> folders = new List<InventoryFolderBase>(); |
200 | 188 | string sql = "SELECT * FROM inventoryfolders WHERE parentFolderID = @parentID"; | |
201 | using (AutoClosingSqlCommand command = database.Query("SELECT * FROM inventoryfolders WHERE parentFolderID = @parentID")) | 189 | using (SqlConnection conn = new SqlConnection(m_connectionString)) |
190 | using (SqlCommand cmd = new SqlCommand(sql, conn)) | ||
202 | { | 191 | { |
203 | command.Parameters.Add(database.CreateParameter("@parentID", parentID)); | 192 | cmd.Parameters.Add(database.CreateParameter("@parentID", parentID)); |
204 | 193 | conn.Open(); | |
205 | folders.AddRange(getInventoryFolders(command)); | 194 | folders.AddRange(getInventoryFolders(cmd)); |
206 | 195 | ||
207 | List<InventoryFolderBase> tempFolders = new List<InventoryFolderBase>(); | 196 | List<InventoryFolderBase> tempFolders = new List<InventoryFolderBase>(); |
208 | 197 | ||
209 | foreach (InventoryFolderBase folderBase in folders) | 198 | foreach (InventoryFolderBase folderBase in folders) |
210 | { | 199 | { |
211 | tempFolders.AddRange(getFolderHierarchy(folderBase.ID, command)); | 200 | tempFolders.AddRange(getFolderHierarchy(folderBase.ID, cmd)); |
212 | } | 201 | } |
213 | if (tempFolders.Count > 0) | 202 | if (tempFolders.Count > 0) |
214 | { | 203 | { |
@@ -233,20 +222,19 @@ namespace OpenSim.Data.MSSQL | |||
233 | folderName = folderName.Substring(0, 64); | 222 | folderName = folderName.Substring(0, 64); |
234 | m_log.Warn("[INVENTORY DB]: Name field truncated from " + folder.Name.Length.ToString() + " to " + folderName.Length + " characters on add"); | 223 | m_log.Warn("[INVENTORY DB]: Name field truncated from " + folder.Name.Length.ToString() + " to " + folderName.Length + " characters on add"); |
235 | } | 224 | } |
236 | 225 | using (SqlConnection conn = new SqlConnection(m_connectionString)) | |
237 | using (AutoClosingSqlCommand command = database.Query(sql)) | 226 | using (SqlCommand cmd = new SqlCommand(sql, conn)) |
238 | { | 227 | { |
239 | command.Parameters.Add(database.CreateParameter("folderID", folder.ID)); | 228 | cmd.Parameters.Add(database.CreateParameter("folderID", folder.ID)); |
240 | command.Parameters.Add(database.CreateParameter("agentID", folder.Owner)); | 229 | cmd.Parameters.Add(database.CreateParameter("agentID", folder.Owner)); |
241 | command.Parameters.Add(database.CreateParameter("parentFolderID", folder.ParentID)); | 230 | cmd.Parameters.Add(database.CreateParameter("parentFolderID", folder.ParentID)); |
242 | command.Parameters.Add(database.CreateParameter("folderName", folderName)); | 231 | cmd.Parameters.Add(database.CreateParameter("folderName", folderName)); |
243 | command.Parameters.Add(database.CreateParameter("type", folder.Type)); | 232 | cmd.Parameters.Add(database.CreateParameter("type", folder.Type)); |
244 | command.Parameters.Add(database.CreateParameter("version", folder.Version)); | 233 | cmd.Parameters.Add(database.CreateParameter("version", folder.Version)); |
245 | 234 | conn.Open(); | |
246 | try | 235 | try |
247 | { | 236 | { |
248 | //IDbCommand result = database.Query(sql, param); | 237 | cmd.ExecuteNonQuery(); |
249 | command.ExecuteNonQuery(); | ||
250 | } | 238 | } |
251 | catch (Exception e) | 239 | catch (Exception e) |
252 | { | 240 | { |
@@ -275,20 +263,20 @@ namespace OpenSim.Data.MSSQL | |||
275 | folderName = folderName.Substring(0, 64); | 263 | folderName = folderName.Substring(0, 64); |
276 | m_log.Warn("[INVENTORY DB]: Name field truncated from " + folder.Name.Length.ToString() + " to " + folderName.Length + " characters on update"); | 264 | m_log.Warn("[INVENTORY DB]: Name field truncated from " + folder.Name.Length.ToString() + " to " + folderName.Length + " characters on update"); |
277 | } | 265 | } |
278 | 266 | using (SqlConnection conn = new SqlConnection(m_connectionString)) | |
279 | using (AutoClosingSqlCommand command = database.Query(sql)) | 267 | using (SqlCommand cmd = new SqlCommand(sql, conn)) |
280 | { | 268 | { |
281 | command.Parameters.Add(database.CreateParameter("folderID", folder.ID)); | 269 | cmd.Parameters.Add(database.CreateParameter("folderID", folder.ID)); |
282 | command.Parameters.Add(database.CreateParameter("agentID", folder.Owner)); | 270 | cmd.Parameters.Add(database.CreateParameter("agentID", folder.Owner)); |
283 | command.Parameters.Add(database.CreateParameter("parentFolderID", folder.ParentID)); | 271 | cmd.Parameters.Add(database.CreateParameter("parentFolderID", folder.ParentID)); |
284 | command.Parameters.Add(database.CreateParameter("folderName", folderName)); | 272 | cmd.Parameters.Add(database.CreateParameter("folderName", folderName)); |
285 | command.Parameters.Add(database.CreateParameter("type", folder.Type)); | 273 | cmd.Parameters.Add(database.CreateParameter("type", folder.Type)); |
286 | command.Parameters.Add(database.CreateParameter("version", folder.Version)); | 274 | cmd.Parameters.Add(database.CreateParameter("version", folder.Version)); |
287 | command.Parameters.Add(database.CreateParameter("@keyFolderID", folder.ID)); | 275 | cmd.Parameters.Add(database.CreateParameter("@keyFolderID", folder.ID)); |
288 | 276 | conn.Open(); | |
289 | try | 277 | try |
290 | { | 278 | { |
291 | command.ExecuteNonQuery(); | 279 | cmd.ExecuteNonQuery(); |
292 | } | 280 | } |
293 | catch (Exception e) | 281 | catch (Exception e) |
294 | { | 282 | { |
@@ -304,14 +292,15 @@ namespace OpenSim.Data.MSSQL | |||
304 | public void moveInventoryFolder(InventoryFolderBase folder) | 292 | public void moveInventoryFolder(InventoryFolderBase folder) |
305 | { | 293 | { |
306 | string sql = @"UPDATE inventoryfolders SET parentFolderID = @parentFolderID WHERE folderID = @folderID"; | 294 | string sql = @"UPDATE inventoryfolders SET parentFolderID = @parentFolderID WHERE folderID = @folderID"; |
307 | using (IDbCommand command = database.Query(sql)) | 295 | using (SqlConnection conn = new SqlConnection(m_connectionString)) |
296 | using (SqlCommand cmd = new SqlCommand(sql, conn)) | ||
308 | { | 297 | { |
309 | command.Parameters.Add(database.CreateParameter("parentFolderID", folder.ParentID)); | 298 | cmd.Parameters.Add(database.CreateParameter("parentFolderID", folder.ParentID)); |
310 | command.Parameters.Add(database.CreateParameter("@folderID", folder.ID)); | 299 | cmd.Parameters.Add(database.CreateParameter("@folderID", folder.ID)); |
311 | 300 | conn.Open(); | |
312 | try | 301 | try |
313 | { | 302 | { |
314 | command.ExecuteNonQuery(); | 303 | cmd.ExecuteNonQuery(); |
315 | } | 304 | } |
316 | catch (Exception e) | 305 | catch (Exception e) |
317 | { | 306 | { |
@@ -326,30 +315,27 @@ namespace OpenSim.Data.MSSQL | |||
326 | /// <param name="folderID">Id of folder to delete</param> | 315 | /// <param name="folderID">Id of folder to delete</param> |
327 | public void deleteInventoryFolder(UUID folderID) | 316 | public void deleteInventoryFolder(UUID folderID) |
328 | { | 317 | { |
329 | using (SqlConnection connection = database.DatabaseConnection()) | 318 | string sql = "SELECT * FROM inventoryfolders WHERE parentFolderID = @parentID"; |
319 | |||
320 | using (SqlConnection conn = new SqlConnection(m_connectionString)) | ||
321 | using (SqlCommand cmd = new SqlCommand(sql, conn)) | ||
330 | { | 322 | { |
331 | List<InventoryFolderBase> subFolders; | 323 | List<InventoryFolderBase> subFolders; |
332 | using (SqlCommand command = new SqlCommand("SELECT * FROM inventoryfolders WHERE parentFolderID = @parentID", connection)) | 324 | cmd.Parameters.Add(database.CreateParameter("@parentID", UUID.Zero)); |
333 | { | 325 | conn.Open(); |
334 | command.Parameters.Add(database.CreateParameter("@parentID", UUID.Zero)); | 326 | subFolders = getFolderHierarchy(folderID, cmd); |
335 | 327 | ||
336 | AutoClosingSqlCommand autoCommand = new AutoClosingSqlCommand(command); | ||
337 | |||
338 | subFolders = getFolderHierarchy(folderID, autoCommand); | ||
339 | } | ||
340 | 328 | ||
341 | //Delete all sub-folders | 329 | //Delete all sub-folders |
342 | foreach (InventoryFolderBase f in subFolders) | 330 | foreach (InventoryFolderBase f in subFolders) |
343 | { | 331 | { |
344 | DeleteOneFolder(f.ID, connection); | 332 | DeleteOneFolder(f.ID, conn); |
345 | DeleteItemsInFolder(f.ID, connection); | 333 | DeleteItemsInFolder(f.ID, conn); |
346 | } | 334 | } |
347 | 335 | ||
348 | //Delete the actual row | 336 | //Delete the actual row |
349 | DeleteOneFolder(folderID, connection); | 337 | DeleteOneFolder(folderID, conn); |
350 | DeleteItemsInFolder(folderID, connection); | 338 | DeleteItemsInFolder(folderID, conn); |
351 | |||
352 | connection.Close(); | ||
353 | } | 339 | } |
354 | } | 340 | } |
355 | 341 | ||
@@ -364,13 +350,15 @@ namespace OpenSim.Data.MSSQL | |||
364 | /// <returns>A list containing inventory items</returns> | 350 | /// <returns>A list containing inventory items</returns> |
365 | public List<InventoryItemBase> getInventoryInFolder(UUID folderID) | 351 | public List<InventoryItemBase> getInventoryInFolder(UUID folderID) |
366 | { | 352 | { |
367 | using (AutoClosingSqlCommand command = database.Query("SELECT * FROM inventoryitems WHERE parentFolderID = @parentFolderID")) | 353 | string sql = "SELECT * FROM inventoryitems WHERE parentFolderID = @parentFolderID"; |
354 | using (SqlConnection conn = new SqlConnection(m_connectionString)) | ||
355 | using (SqlCommand cmd = new SqlCommand(sql, conn)) | ||
368 | { | 356 | { |
369 | command.Parameters.Add(database.CreateParameter("parentFolderID", folderID)); | 357 | cmd.Parameters.Add(database.CreateParameter("parentFolderID", folderID)); |
370 | 358 | conn.Open(); | |
371 | List<InventoryItemBase> items = new List<InventoryItemBase>(); | 359 | List<InventoryItemBase> items = new List<InventoryItemBase>(); |
372 | 360 | ||
373 | using (SqlDataReader reader = command.ExecuteReader()) | 361 | using (SqlDataReader reader = cmd.ExecuteReader()) |
374 | { | 362 | { |
375 | while (reader.Read()) | 363 | while (reader.Read()) |
376 | { | 364 | { |
@@ -388,11 +376,13 @@ namespace OpenSim.Data.MSSQL | |||
388 | /// <returns>An inventory item</returns> | 376 | /// <returns>An inventory item</returns> |
389 | public InventoryItemBase getInventoryItem(UUID itemID) | 377 | public InventoryItemBase getInventoryItem(UUID itemID) |
390 | { | 378 | { |
391 | using (AutoClosingSqlCommand result = database.Query("SELECT * FROM inventoryitems WHERE inventoryID = @inventoryID")) | 379 | string sql = "SELECT * FROM inventoryitems WHERE inventoryID = @inventoryID"; |
380 | using (SqlConnection conn = new SqlConnection(m_connectionString)) | ||
381 | using (SqlCommand cmd = new SqlCommand(sql, conn)) | ||
392 | { | 382 | { |
393 | result.Parameters.Add(database.CreateParameter("inventoryID", itemID)); | 383 | cmd.Parameters.Add(database.CreateParameter("inventoryID", itemID)); |
394 | 384 | conn.Open(); | |
395 | using (IDataReader reader = result.ExecuteReader()) | 385 | using (SqlDataReader reader = cmd.ExecuteReader()) |
396 | { | 386 | { |
397 | if (reader.Read()) | 387 | if (reader.Read()) |
398 | { | 388 | { |
@@ -441,8 +431,9 @@ namespace OpenSim.Data.MSSQL | |||
441 | itemDesc = item.Description.Substring(0, 128); | 431 | itemDesc = item.Description.Substring(0, 128); |
442 | m_log.Warn("[INVENTORY DB]: Description field truncated from " + item.Description.Length.ToString() + " to " + itemDesc.Length.ToString() + " characters"); | 432 | m_log.Warn("[INVENTORY DB]: Description field truncated from " + item.Description.Length.ToString() + " to " + itemDesc.Length.ToString() + " characters"); |
443 | } | 433 | } |
444 | 434 | ||
445 | using (AutoClosingSqlCommand command = database.Query(sql)) | 435 | using (SqlConnection conn = new SqlConnection(m_connectionString)) |
436 | using (SqlCommand command = new SqlCommand(sql, conn)) | ||
446 | { | 437 | { |
447 | command.Parameters.Add(database.CreateParameter("inventoryID", item.ID)); | 438 | command.Parameters.Add(database.CreateParameter("inventoryID", item.ID)); |
448 | command.Parameters.Add(database.CreateParameter("assetID", item.AssetID)); | 439 | command.Parameters.Add(database.CreateParameter("assetID", item.AssetID)); |
@@ -464,7 +455,7 @@ namespace OpenSim.Data.MSSQL | |||
464 | command.Parameters.Add(database.CreateParameter("groupID", item.GroupID)); | 455 | command.Parameters.Add(database.CreateParameter("groupID", item.GroupID)); |
465 | command.Parameters.Add(database.CreateParameter("groupOwned", item.GroupOwned)); | 456 | command.Parameters.Add(database.CreateParameter("groupOwned", item.GroupOwned)); |
466 | command.Parameters.Add(database.CreateParameter("flags", item.Flags)); | 457 | command.Parameters.Add(database.CreateParameter("flags", item.Flags)); |
467 | 458 | conn.Open(); | |
468 | try | 459 | try |
469 | { | 460 | { |
470 | command.ExecuteNonQuery(); | 461 | command.ExecuteNonQuery(); |
@@ -476,9 +467,11 @@ namespace OpenSim.Data.MSSQL | |||
476 | } | 467 | } |
477 | 468 | ||
478 | sql = "UPDATE inventoryfolders SET version = version + 1 WHERE folderID = @folderID"; | 469 | sql = "UPDATE inventoryfolders SET version = version + 1 WHERE folderID = @folderID"; |
479 | using (AutoClosingSqlCommand command = database.Query(sql)) | 470 | using (SqlConnection conn = new SqlConnection(m_connectionString)) |
471 | using (SqlCommand command = new SqlCommand(sql, conn)) | ||
480 | { | 472 | { |
481 | command.Parameters.Add(database.CreateParameter("folderID", item.Folder.ToString())); | 473 | command.Parameters.Add(database.CreateParameter("folderID", item.Folder.ToString())); |
474 | conn.Open(); | ||
482 | try | 475 | try |
483 | { | 476 | { |
484 | command.ExecuteNonQuery(); | 477 | command.ExecuteNonQuery(); |
@@ -530,8 +523,9 @@ namespace OpenSim.Data.MSSQL | |||
530 | itemDesc = item.Description.Substring(0, 128); | 523 | itemDesc = item.Description.Substring(0, 128); |
531 | m_log.Warn("[INVENTORY DB]: Description field truncated from " + item.Description.Length.ToString() + " to " + itemDesc.Length.ToString() + " characters on update"); | 524 | m_log.Warn("[INVENTORY DB]: Description field truncated from " + item.Description.Length.ToString() + " to " + itemDesc.Length.ToString() + " characters on update"); |
532 | } | 525 | } |
533 | 526 | ||
534 | using (AutoClosingSqlCommand command = database.Query(sql)) | 527 | using (SqlConnection conn = new SqlConnection(m_connectionString)) |
528 | using (SqlCommand command = new SqlCommand(sql, conn)) | ||
535 | { | 529 | { |
536 | command.Parameters.Add(database.CreateParameter("inventoryID", item.ID)); | 530 | command.Parameters.Add(database.CreateParameter("inventoryID", item.ID)); |
537 | command.Parameters.Add(database.CreateParameter("assetID", item.AssetID)); | 531 | command.Parameters.Add(database.CreateParameter("assetID", item.AssetID)); |
@@ -552,8 +546,8 @@ namespace OpenSim.Data.MSSQL | |||
552 | command.Parameters.Add(database.CreateParameter("groupID", item.GroupID)); | 546 | command.Parameters.Add(database.CreateParameter("groupID", item.GroupID)); |
553 | command.Parameters.Add(database.CreateParameter("groupOwned", item.GroupOwned)); | 547 | command.Parameters.Add(database.CreateParameter("groupOwned", item.GroupOwned)); |
554 | command.Parameters.Add(database.CreateParameter("flags", item.Flags)); | 548 | command.Parameters.Add(database.CreateParameter("flags", item.Flags)); |
555 | command.Parameters.Add(database.CreateParameter("@keyInventoryID", item.ID)); | 549 | command.Parameters.Add(database.CreateParameter("keyInventoryID", item.ID)); |
556 | 550 | conn.Open(); | |
557 | try | 551 | try |
558 | { | 552 | { |
559 | command.ExecuteNonQuery(); | 553 | command.ExecuteNonQuery(); |
@@ -573,13 +567,15 @@ namespace OpenSim.Data.MSSQL | |||
573 | /// <param name="itemID">the item UUID</param> | 567 | /// <param name="itemID">the item UUID</param> |
574 | public void deleteInventoryItem(UUID itemID) | 568 | public void deleteInventoryItem(UUID itemID) |
575 | { | 569 | { |
576 | using (AutoClosingSqlCommand command = database.Query("DELETE FROM inventoryitems WHERE inventoryID=@inventoryID")) | 570 | string sql = "DELETE FROM inventoryitems WHERE inventoryID=@inventoryID"; |
571 | using (SqlConnection conn = new SqlConnection(m_connectionString)) | ||
572 | using (SqlCommand cmd = new SqlCommand(sql, conn)) | ||
577 | { | 573 | { |
578 | command.Parameters.Add(database.CreateParameter("inventoryID", itemID)); | 574 | cmd.Parameters.Add(database.CreateParameter("inventoryID", itemID)); |
579 | try | 575 | try |
580 | { | 576 | { |
581 | 577 | conn.Open(); | |
582 | command.ExecuteNonQuery(); | 578 | cmd.ExecuteNonQuery(); |
583 | } | 579 | } |
584 | catch (Exception e) | 580 | catch (Exception e) |
585 | { | 581 | { |
@@ -607,12 +603,14 @@ namespace OpenSim.Data.MSSQL | |||
607 | /// </returns> | 603 | /// </returns> |
608 | public List<InventoryItemBase> fetchActiveGestures(UUID avatarID) | 604 | public List<InventoryItemBase> fetchActiveGestures(UUID avatarID) |
609 | { | 605 | { |
610 | using (AutoClosingSqlCommand command = database.Query("SELECT * FROM inventoryitems WHERE avatarId = @uuid AND assetType = @assetType and flags = 1")) | 606 | string sql = "SELECT * FROM inventoryitems WHERE avatarId = @uuid AND assetType = @assetType and flags = 1"; |
611 | { | 607 | using (SqlConnection conn = new SqlConnection(m_connectionString)) |
612 | command.Parameters.Add(database.CreateParameter("uuid", avatarID)); | 608 | using (SqlCommand cmd = new SqlCommand(sql, conn)) |
613 | command.Parameters.Add(database.CreateParameter("assetType", (int)AssetType.Gesture)); | 609 | { |
614 | 610 | cmd.Parameters.Add(database.CreateParameter("uuid", avatarID)); | |
615 | using (IDataReader reader = command.ExecuteReader()) | 611 | cmd.Parameters.Add(database.CreateParameter("assetType", (int)AssetType.Gesture)); |
612 | conn.Open(); | ||
613 | using (SqlDataReader reader = cmd.ExecuteReader()) | ||
616 | { | 614 | { |
617 | List<InventoryItemBase> gestureList = new List<InventoryItemBase>(); | 615 | List<InventoryItemBase> gestureList = new List<InventoryItemBase>(); |
618 | while (reader.Read()) | 616 | while (reader.Read()) |
@@ -656,7 +654,7 @@ namespace OpenSim.Data.MSSQL | |||
656 | /// <param name="parentID">parent ID.</param> | 654 | /// <param name="parentID">parent ID.</param> |
657 | /// <param name="command">SQL command/connection to database</param> | 655 | /// <param name="command">SQL command/connection to database</param> |
658 | /// <returns></returns> | 656 | /// <returns></returns> |
659 | private static List<InventoryFolderBase> getFolderHierarchy(UUID parentID, AutoClosingSqlCommand command) | 657 | private static List<InventoryFolderBase> getFolderHierarchy(UUID parentID, SqlCommand command) |
660 | { | 658 | { |
661 | command.Parameters["@parentID"].Value = parentID.Guid; //.ToString(); | 659 | command.Parameters["@parentID"].Value = parentID.Guid; //.ToString(); |
662 | 660 | ||
@@ -687,7 +685,9 @@ namespace OpenSim.Data.MSSQL | |||
687 | /// <returns></returns> | 685 | /// <returns></returns> |
688 | private List<InventoryFolderBase> getInventoryFolders(UUID parentID, UUID user) | 686 | private List<InventoryFolderBase> getInventoryFolders(UUID parentID, UUID user) |
689 | { | 687 | { |
690 | using (AutoClosingSqlCommand command = database.Query("SELECT * FROM inventoryfolders WHERE parentFolderID = @parentID AND agentID LIKE @uuid")) | 688 | string sql = "SELECT * FROM inventoryfolders WHERE parentFolderID = @parentID AND agentID LIKE @uuid"; |
689 | using (SqlConnection conn = new SqlConnection(m_connectionString)) | ||
690 | using (SqlCommand command = new SqlCommand(sql, conn)) | ||
691 | { | 691 | { |
692 | if (user == UUID.Zero) | 692 | if (user == UUID.Zero) |
693 | { | 693 | { |
@@ -698,7 +698,7 @@ namespace OpenSim.Data.MSSQL | |||
698 | command.Parameters.Add(database.CreateParameter("uuid", user)); | 698 | command.Parameters.Add(database.CreateParameter("uuid", user)); |
699 | } | 699 | } |
700 | command.Parameters.Add(database.CreateParameter("parentID", parentID)); | 700 | command.Parameters.Add(database.CreateParameter("parentID", parentID)); |
701 | 701 | conn.Open(); | |
702 | return getInventoryFolders(command); | 702 | return getInventoryFolders(command); |
703 | } | 703 | } |
704 | } | 704 | } |
@@ -708,9 +708,9 @@ namespace OpenSim.Data.MSSQL | |||
708 | /// </summary> | 708 | /// </summary> |
709 | /// <param name="command">SQLcommand.</param> | 709 | /// <param name="command">SQLcommand.</param> |
710 | /// <returns></returns> | 710 | /// <returns></returns> |
711 | private static List<InventoryFolderBase> getInventoryFolders(AutoClosingSqlCommand command) | 711 | private static List<InventoryFolderBase> getInventoryFolders(SqlCommand command) |
712 | { | 712 | { |
713 | using (IDataReader reader = command.ExecuteReader()) | 713 | using (SqlDataReader reader = command.ExecuteReader()) |
714 | { | 714 | { |
715 | 715 | ||
716 | List<InventoryFolderBase> items = new List<InventoryFolderBase>(); | 716 | List<InventoryFolderBase> items = new List<InventoryFolderBase>(); |
@@ -727,7 +727,7 @@ namespace OpenSim.Data.MSSQL | |||
727 | /// </summary> | 727 | /// </summary> |
728 | /// <param name="reader">A MSSQL Data Reader</param> | 728 | /// <param name="reader">A MSSQL Data Reader</param> |
729 | /// <returns>A List containing inventory folders</returns> | 729 | /// <returns>A List containing inventory folders</returns> |
730 | protected static InventoryFolderBase readInventoryFolder(IDataReader reader) | 730 | protected static InventoryFolderBase readInventoryFolder(SqlDataReader reader) |
731 | { | 731 | { |
732 | try | 732 | try |
733 | { | 733 | { |