From 9972b12812d343c48843057ddb2f4ea9c7f96bb4 Mon Sep 17 00:00:00 2001 From: Melanie Date: Sat, 26 Dec 2009 00:19:54 +0000 Subject: Add a generic REPLACE INTO handler for put into the generic table handler --- OpenSim/Data/MySQL/MySQLGenericTableHandler.cs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'OpenSim/Data/MySQL') diff --git a/OpenSim/Data/MySQL/MySQLGenericTableHandler.cs b/OpenSim/Data/MySQL/MySQLGenericTableHandler.cs index 2f5937d..9b8a001 100644 --- a/OpenSim/Data/MySQL/MySQLGenericTableHandler.cs +++ b/OpenSim/Data/MySQL/MySQLGenericTableHandler.cs @@ -195,6 +195,31 @@ namespace OpenSim.Data.MySQL MySqlCommand cmd = new MySqlCommand(); string query = ""; + List names = new List(); + List values = new List(); + + foreach (FieldInfo fi in m_Fields.Values) + { + names.Add(fi.Name); + values.Add(fi.GetValue(row).ToString()); + } + + if (m_DataField != null) + { + Dictionary data = + (Dictionary)m_DataField.GetValue(row); + + foreach (KeyValuePair kvp in data) + { + names.Add(kvp.Key); + values.Add(kvp.Value); + } + } + + query = String.Format("replace into {0} (`", m_Realm) + String.Join("`,`", names.ToArray()) + "`) values ('" + String.Join("','", values.ToArray()) + "')"; + + if (ExecuteNonQuery(cmd) > 0) + return true; return false; } -- cgit v1.1