aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Data.MySQL
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Framework/Data.MySQL')
-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 5009d9e..8a7e869 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", param); 135 IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE parentFolderID = ?zero AND (agentID = ?uuid OR category = 0)", 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,40 +152,6 @@ 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>
189 /// Returns a list of folders in a users inventory contained within the specified folder 155 /// Returns a list of folders in a users inventory contained within the specified folder
190 /// </summary> 156 /// </summary>
191 /// <param name="parentID">The folder to search</param> 157 /// <param name="parentID">The folder to search</param>
@@ -348,5 +314,27 @@ namespace OpenSim.Framework.Data.MySQL
348 { 314 {
349 addInventoryFolder(folder); 315 addInventoryFolder(folder);
350 } 316 }
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
351 } 339 }
352} 340}
diff --git a/OpenSim/Framework/Data.MySQL/MySQLManager.cs b/OpenSim/Framework/Data.MySQL/MySQLManager.cs
index 5037f98..e55606e 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 IDbConnection dbcon; 44 MySqlConnection dbcon;
45 /// <summary> 45 /// <summary>
46 /// Connection string for ADO.net 46 /// Connection string for ADO.net
47 /// </summary> 47 /// </summary>
@@ -115,10 +115,11 @@ 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 foreach (KeyValuePair<string, string> param in parameters) 118 if(parameters != null)
119 { 119 foreach (KeyValuePair<string, string> param in parameters)
120 dbcommand.Parameters.Add(param.Key, param.Value); 120 {
121 } 121 dbcommand.Parameters.Add(param.Key, param.Value);
122 }
122 123
123 return (IDbCommand)dbcommand; 124 return (IDbCommand)dbcommand;
124 } 125 }
@@ -149,10 +150,11 @@ namespace OpenSim.Framework.Data.MySQL
149 { 150 {
150 MySqlCommand dbcommand = (MySqlCommand)dbcon.CreateCommand(); 151 MySqlCommand dbcommand = (MySqlCommand)dbcon.CreateCommand();
151 dbcommand.CommandText = sql; 152 dbcommand.CommandText = sql;
152 foreach (KeyValuePair<string, string> param in parameters) 153 if(parameters != null)
153 { 154 foreach (KeyValuePair<string, string> param in parameters)
154 dbcommand.Parameters.Add(param.Key, param.Value); 155 {
155 } 156 dbcommand.Parameters.Add(param.Key, param.Value);
157 }
156 158
157 return (IDbCommand)dbcommand; 159 return (IDbCommand)dbcommand;
158 } 160 }
@@ -370,6 +372,8 @@ namespace OpenSim.Framework.Data.MySQL
370 folder.parentID = new LLUUID((string)reader["parentFolderID"]); 372 folder.parentID = new LLUUID((string)reader["parentFolderID"]);
371 folder.folderID = new LLUUID((string)reader["folderID"]); 373 folder.folderID = new LLUUID((string)reader["folderID"]);
372 folder.name = (string)reader["folderName"]; 374 folder.name = (string)reader["folderName"];
375 folder.category = (InventoryCategory)((Int16)reader["category"]);
376 folder.type = (Int16)reader["folderType"];
373 377
374 rows.Add(folder); 378 rows.Add(folder);
375 } 379 }
@@ -509,24 +513,32 @@ namespace OpenSim.Framework.Data.MySQL
509 /// <returns>Success?</returns> 513 /// <returns>Success?</returns>
510 public bool insertFolder(InventoryFolderBase folder) 514 public bool insertFolder(InventoryFolderBase folder)
511 { 515 {
512 string sql = "REPLACE INTO inventoryfolders (folderID, agentID, parentFolderID, folderName) VALUES "; 516 string sql = "REPLACE INTO inventoryfolders (folderID, agentID, parentFolderID, folderName, category, folderType) VALUES ";
513 sql += "(?folderID, ?agentID, ?parentFolderID, ?folderName)"; 517 sql += "(?folderID, ?agentID, ?parentFolderID, ?folderName, ?category, ?folderType)";
514 518
515 Dictionary<string, string> parameters = new Dictionary<string, string>(); 519 MySqlCommand dbcmd = dbcon.CreateCommand();
516 parameters["?folderID"] = folder.folderID.ToStringHyphenated(); 520 dbcmd.CommandText = sql;
517 parameters["?agentID"] = folder.agentID.ToStringHyphenated(); 521
518 parameters["?parentFolderID"] = folder.parentID.ToStringHyphenated(); 522 LLUUID tmpID = folder.folderID;
519 parameters["?folderName"] = folder.name; 523 dbcmd.Parameters.Add(new MySqlParameter("?folderID", tmpID.ToStringHyphenated()));
520 524 dbcmd.Parameters.Add(new MySqlParameter("?folderID", tmpID.ToStringHyphenated()));
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
521 bool returnval = false; 537 bool returnval = false;
522 try 538 try
523 { 539 {
524 IDbCommand result = Query(sql, parameters); 540 if (dbcmd.ExecuteNonQuery() == 1)
525
526 if (result.ExecuteNonQuery() == 1)
527 returnval = true; 541 returnval = true;
528
529 result.Dispose();
530 } 542 }
531 catch (Exception e) 543 catch (Exception e)
532 { 544 {