aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Data.MySQL
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs58
-rw-r--r--OpenSim/Framework/Data.MySQL/MySQLManager.cs58
2 files changed, 58 insertions, 58 deletions
diff --git a/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs b/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs
index 8a7e869..5009d9e 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs
@@ -132,7 +132,7 @@ namespace OpenSim.Framework.Data.MySQL
132 param["?uuid"] = user.ToStringHyphenated(); 132 param["?uuid"] = user.ToStringHyphenated();
133 param["?zero"] = LLUUID.Zero.ToStringHyphenated(); 133 param["?zero"] = LLUUID.Zero.ToStringHyphenated();
134 134
135 IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE parentFolderID = ?zero AND (agentID = ?uuid OR category = 0)", param); 135 IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE parentFolderID = ?zero AND agentID = ?uuid", param);
136 IDataReader reader = result.ExecuteReader(); 136 IDataReader reader = result.ExecuteReader();
137 137
138 List<InventoryFolderBase> items = database.readInventoryFolders(reader); 138 List<InventoryFolderBase> items = database.readInventoryFolders(reader);
@@ -152,6 +152,40 @@ namespace OpenSim.Framework.Data.MySQL
152 } 152 }
153 153
154 /// <summary> 154 /// <summary>
155 /// Returns the users inventory root folder.
156 /// </summary>
157 /// <param name="user"></param>
158 /// <returns></returns>
159 public InventoryFolderBase getUserRootFolder(LLUUID user)
160 {
161 try
162 {
163 lock (database)
164 {
165 Dictionary<string, string> param = new Dictionary<string, string>();
166 param["?uuid"] = user.ToStringHyphenated();
167 param["?zero"] = LLUUID.Zero.ToStringHyphenated();
168
169 IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE parentFolderID = ?zero AND agentID = ?uuid", param);
170 IDataReader reader = result.ExecuteReader();
171
172 List<InventoryFolderBase> items = database.readInventoryFolders(reader);
173 InventoryFolderBase rootFolder = items[0]; //should only be one folder with parent set to zero (the root one).
174 reader.Close();
175 result.Dispose();
176
177 return rootFolder;
178 }
179 }
180 catch (Exception e)
181 {
182 database.Reconnect();
183 Console.WriteLine(e.ToString());
184 return null;
185 }
186 }
187
188 /// <summary>
155 /// Returns a list of folders in a users inventory contained within the specified folder 189 /// Returns a list of folders in a users inventory contained within the specified folder
156 /// </summary> 190 /// </summary>
157 /// <param name="parentID">The folder to search</param> 191 /// <param name="parentID">The folder to search</param>
@@ -314,27 +348,5 @@ namespace OpenSim.Framework.Data.MySQL
314 { 348 {
315 addInventoryFolder(folder); 349 addInventoryFolder(folder);
316 } 350 }
317
318 public void deleteInventoryCategory(InventoryCategory inventoryCategory)
319 {
320 try
321 {
322 lock (database) {
323 IDbCommand cmd = database.Query(string.Format("DELETE FROM inventoryitems WHERE parentFolderID IN (SELECT folderId FROM inventoryfolders WHERE category={0})", (byte)inventoryCategory), null);
324 cmd.ExecuteNonQuery();
325
326
327 cmd = database.Query(string.Format("DELETE FROM inventoryfolders WHERE category={0}", (byte)inventoryCategory), null);
328 cmd.ExecuteNonQuery();
329 }
330
331 }
332 catch (Exception e)
333 {
334 database.Reconnect();
335 Console.WriteLine(e.ToString());
336 }
337 }
338
339 } 351 }
340} 352}
diff --git a/OpenSim/Framework/Data.MySQL/MySQLManager.cs b/OpenSim/Framework/Data.MySQL/MySQLManager.cs
index e55606e..5037f98 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLManager.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLManager.cs
@@ -41,7 +41,7 @@ namespace OpenSim.Framework.Data.MySQL
41 /// <summary> 41 /// <summary>
42 /// The database connection object 42 /// The database connection object
43 /// </summary> 43 /// </summary>
44 MySqlConnection dbcon; 44 IDbConnection dbcon;
45 /// <summary> 45 /// <summary>
46 /// Connection string for ADO.net 46 /// Connection string for ADO.net
47 /// </summary> 47 /// </summary>
@@ -115,11 +115,10 @@ namespace OpenSim.Framework.Data.MySQL
115 { 115 {
116 MySqlCommand dbcommand = (MySqlCommand)dbcon.CreateCommand(); 116 MySqlCommand dbcommand = (MySqlCommand)dbcon.CreateCommand();
117 dbcommand.CommandText = sql; 117 dbcommand.CommandText = sql;
118 if(parameters != null) 118 foreach (KeyValuePair<string, string> param in parameters)
119 foreach (KeyValuePair<string, string> param in parameters) 119 {
120 { 120 dbcommand.Parameters.Add(param.Key, param.Value);
121 dbcommand.Parameters.Add(param.Key, param.Value); 121 }
122 }
123 122
124 return (IDbCommand)dbcommand; 123 return (IDbCommand)dbcommand;
125 } 124 }
@@ -150,11 +149,10 @@ namespace OpenSim.Framework.Data.MySQL
150 { 149 {
151 MySqlCommand dbcommand = (MySqlCommand)dbcon.CreateCommand(); 150 MySqlCommand dbcommand = (MySqlCommand)dbcon.CreateCommand();
152 dbcommand.CommandText = sql; 151 dbcommand.CommandText = sql;
153 if(parameters != null) 152 foreach (KeyValuePair<string, string> param in parameters)
154 foreach (KeyValuePair<string, string> param in parameters) 153 {
155 { 154 dbcommand.Parameters.Add(param.Key, param.Value);
156 dbcommand.Parameters.Add(param.Key, param.Value); 155 }
157 }
158 156
159 return (IDbCommand)dbcommand; 157 return (IDbCommand)dbcommand;
160 } 158 }
@@ -372,8 +370,6 @@ namespace OpenSim.Framework.Data.MySQL
372 folder.parentID = new LLUUID((string)reader["parentFolderID"]); 370 folder.parentID = new LLUUID((string)reader["parentFolderID"]);
373 folder.folderID = new LLUUID((string)reader["folderID"]); 371 folder.folderID = new LLUUID((string)reader["folderID"]);
374 folder.name = (string)reader["folderName"]; 372 folder.name = (string)reader["folderName"];
375 folder.category = (InventoryCategory)((Int16)reader["category"]);
376 folder.type = (Int16)reader["folderType"];
377 373
378 rows.Add(folder); 374 rows.Add(folder);
379 } 375 }
@@ -513,32 +509,24 @@ namespace OpenSim.Framework.Data.MySQL
513 /// <returns>Success?</returns> 509 /// <returns>Success?</returns>
514 public bool insertFolder(InventoryFolderBase folder) 510 public bool insertFolder(InventoryFolderBase folder)
515 { 511 {
516 string sql = "REPLACE INTO inventoryfolders (folderID, agentID, parentFolderID, folderName, category, folderType) VALUES "; 512 string sql = "REPLACE INTO inventoryfolders (folderID, agentID, parentFolderID, folderName) VALUES ";
517 sql += "(?folderID, ?agentID, ?parentFolderID, ?folderName, ?category, ?folderType)"; 513 sql += "(?folderID, ?agentID, ?parentFolderID, ?folderName)";
518 514
519 MySqlCommand dbcmd = dbcon.CreateCommand(); 515 Dictionary<string, string> parameters = new Dictionary<string, string>();
520 dbcmd.CommandText = sql; 516 parameters["?folderID"] = folder.folderID.ToStringHyphenated();
521 517 parameters["?agentID"] = folder.agentID.ToStringHyphenated();
522 LLUUID tmpID = folder.folderID; 518 parameters["?parentFolderID"] = folder.parentID.ToStringHyphenated();
523 dbcmd.Parameters.Add(new MySqlParameter("?folderID", tmpID.ToStringHyphenated())); 519 parameters["?folderName"] = folder.name;
524 dbcmd.Parameters.Add(new MySqlParameter("?folderID", tmpID.ToStringHyphenated())); 520
525 tmpID = folder.agentID;
526 dbcmd.Parameters.Add(new MySqlParameter("?agentID", tmpID.ToStringHyphenated()));
527 tmpID = folder.parentID;
528 dbcmd.Parameters.Add(new MySqlParameter("?parentFolderID", tmpID.ToStringHyphenated()));
529 dbcmd.Parameters.Add(new MySqlParameter("?folderName", folder.name));
530 MySqlParameter p = dbcmd.Parameters.Add(new MySqlParameter("?category", MySqlDbType.Byte));
531 p.Value = (byte)folder.category;
532
533 p = dbcmd.Parameters.Add(new MySqlParameter("?folderType", MySqlDbType.Byte));
534 p.Value = (byte)folder.type;
535
536
537 bool returnval = false; 521 bool returnval = false;
538 try 522 try
539 { 523 {
540 if (dbcmd.ExecuteNonQuery() == 1) 524 IDbCommand result = Query(sql, parameters);
525
526 if (result.ExecuteNonQuery() == 1)
541 returnval = true; 527 returnval = true;
528
529 result.Dispose();
542 } 530 }
543 catch (Exception e) 531 catch (Exception e)
544 { 532 {