From 94da908813e42c328572bc5da2ddc41b6664b59c Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 14 Nov 2012 04:45:59 +0000 Subject: More consistently dispose of SqliteCommand in OpenSim.Data.SQLite where possible. Not doing SQLiteInventoryStore since this is no longer used and should disappear in the future. --- OpenSim/Data/SQLite/SQLiteGenericTableHandler.cs | 106 ++++++++++++----------- 1 file changed, 55 insertions(+), 51 deletions(-) (limited to 'OpenSim/Data/SQLite/SQLiteGenericTableHandler.cs') diff --git a/OpenSim/Data/SQLite/SQLiteGenericTableHandler.cs b/OpenSim/Data/SQLite/SQLiteGenericTableHandler.cs index 4f977a8..917a0a1 100644 --- a/OpenSim/Data/SQLite/SQLiteGenericTableHandler.cs +++ b/OpenSim/Data/SQLite/SQLiteGenericTableHandler.cs @@ -132,22 +132,23 @@ namespace OpenSim.Data.SQLite List terms = new List(); - SqliteCommand cmd = new SqliteCommand(); - - for (int i = 0 ; i < fields.Length ; i++) + using (SqliteCommand cmd = new SqliteCommand()) { - cmd.Parameters.Add(new SqliteParameter(":" + fields[i], keys[i])); - terms.Add("`" + fields[i] + "` = :" + fields[i]); - } + for (int i = 0 ; i < fields.Length ; i++) + { + cmd.Parameters.Add(new SqliteParameter(":" + fields[i], keys[i])); + terms.Add("`" + fields[i] + "` = :" + fields[i]); + } - string where = String.Join(" and ", terms.ToArray()); + string where = String.Join(" and ", terms.ToArray()); - string query = String.Format("select * from {0} where {1}", - m_Realm, where); + string query = String.Format("select * from {0} where {1}", + m_Realm, where); - cmd.CommandText = query; + cmd.CommandText = query; - return DoQuery(cmd); + return DoQuery(cmd); + } } protected T[] DoQuery(SqliteCommand cmd) @@ -214,50 +215,52 @@ namespace OpenSim.Data.SQLite public T[] Get(string where) { - SqliteCommand cmd = new SqliteCommand(); - - string query = String.Format("select * from {0} where {1}", - m_Realm, where); + using (SqliteCommand cmd = new SqliteCommand()) + { + string query = String.Format("select * from {0} where {1}", + m_Realm, where); - cmd.CommandText = query; + cmd.CommandText = query; - return DoQuery(cmd); + return DoQuery(cmd); + } } public bool Store(T row) { - SqliteCommand cmd = new SqliteCommand(); - - string query = ""; - List names = new List(); - List values = new List(); - - foreach (FieldInfo fi in m_Fields.Values) + using (SqliteCommand cmd = new SqliteCommand()) { - names.Add(fi.Name); - values.Add(":" + fi.Name); - cmd.Parameters.Add(new SqliteParameter(":" + fi.Name, fi.GetValue(row).ToString())); - } + string query = ""; + List names = new List(); + List values = new List(); - if (m_DataField != null) - { - Dictionary data = - (Dictionary)m_DataField.GetValue(row); + foreach (FieldInfo fi in m_Fields.Values) + { + names.Add(fi.Name); + values.Add(":" + fi.Name); + cmd.Parameters.Add(new SqliteParameter(":" + fi.Name, fi.GetValue(row).ToString())); + } - foreach (KeyValuePair kvp in data) + if (m_DataField != null) { - names.Add(kvp.Key); - values.Add(":" + kvp.Key); - cmd.Parameters.Add(new SqliteParameter(":" + kvp.Key, kvp.Value)); + Dictionary data = + (Dictionary)m_DataField.GetValue(row); + + foreach (KeyValuePair kvp in data) + { + names.Add(kvp.Key); + values.Add(":" + kvp.Key); + cmd.Parameters.Add(new SqliteParameter(":" + kvp.Key, kvp.Value)); + } } - } - query = String.Format("replace into {0} (`", m_Realm) + String.Join("`,`", names.ToArray()) + "`) values (" + String.Join(",", values.ToArray()) + ")"; + query = String.Format("replace into {0} (`", m_Realm) + String.Join("`,`", names.ToArray()) + "`) values (" + String.Join(",", values.ToArray()) + ")"; - cmd.CommandText = query; + cmd.CommandText = query; - if (ExecuteNonQuery(cmd, m_Connection) > 0) - return true; + if (ExecuteNonQuery(cmd, m_Connection) > 0) + return true; + } return false; } @@ -274,21 +277,22 @@ namespace OpenSim.Data.SQLite List terms = new List(); - SqliteCommand cmd = new SqliteCommand(); - - for (int i = 0 ; i < fields.Length ; i++) + using (SqliteCommand cmd = new SqliteCommand()) { - cmd.Parameters.Add(new SqliteParameter(":" + fields[i], keys[i])); - terms.Add("`" + fields[i] + "` = :" + fields[i]); - } + for (int i = 0 ; i < fields.Length ; i++) + { + cmd.Parameters.Add(new SqliteParameter(":" + fields[i], keys[i])); + terms.Add("`" + fields[i] + "` = :" + fields[i]); + } - string where = String.Join(" and ", terms.ToArray()); + string where = String.Join(" and ", terms.ToArray()); - string query = String.Format("delete from {0} where {1}", m_Realm, where); + string query = String.Format("delete from {0} where {1}", m_Realm, where); - cmd.CommandText = query; + cmd.CommandText = query; - return ExecuteNonQuery(cmd, m_Connection) > 0; + return ExecuteNonQuery(cmd, m_Connection) > 0; + } } } } -- cgit v1.1