aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Data/MSSQL/MSSQLUserAccountData.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Data/MSSQL/MSSQLUserAccountData.cs')
-rw-r--r--OpenSim/Data/MSSQL/MSSQLUserAccountData.cs38
1 files changed, 20 insertions, 18 deletions
diff --git a/OpenSim/Data/MSSQL/MSSQLUserAccountData.cs b/OpenSim/Data/MSSQL/MSSQLUserAccountData.cs
index 38be9f4..7b6e7c8 100644
--- a/OpenSim/Data/MSSQL/MSSQLUserAccountData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLUserAccountData.cs
@@ -40,19 +40,21 @@ namespace OpenSim.Data.MSSQL
40 { 40 {
41 private string m_Realm; 41 private string m_Realm;
42 private List<string> m_ColumnNames = null; 42 private List<string> m_ColumnNames = null;
43 private int m_LastExpire = 0;
44 private string m_ConnectionString; 43 private string m_ConnectionString;
44 private MSSQLManager m_database;
45 45
46 public MSSQLUserAccountData(string connectionString, string realm) 46 public MSSQLUserAccountData(string connectionString, string realm)
47 { 47 {
48 m_Realm = realm; 48 m_Realm = realm;
49 m_ConnectionString = connectionString; 49 m_ConnectionString = connectionString;
50 m_database = new MSSQLManager(connectionString);
51
50 using (SqlConnection conn = new SqlConnection(m_ConnectionString)) 52 using (SqlConnection conn = new SqlConnection(m_ConnectionString))
51 { 53 {
52 conn.Open(); 54 conn.Open();
53 Migration m = new Migration(conn, GetType().Assembly, "UserStore"); 55 Migration m = new Migration(conn, GetType().Assembly, "UserStore");
54 m.Update(); 56 m.Update();
55 } 57 }
56 } 58 }
57 59
58 public List<UserAccountData> Query(UUID principalID, UUID scopeID, string query) 60 public List<UserAccountData> Query(UUID principalID, UUID scopeID, string query)
@@ -65,16 +67,16 @@ namespace OpenSim.Data.MSSQL
65 UserAccountData ret = new UserAccountData(); 67 UserAccountData ret = new UserAccountData();
66 ret.Data = new Dictionary<string, object>(); 68 ret.Data = new Dictionary<string, object>();
67 69
68 string sql = string.Format("select * from '{0}' where UUID = @principalID", m_Realm); 70 string sql = string.Format("select * from {0} where UUID = @principalID", m_Realm);
69 if (scopeID != UUID.Zero) 71 if (scopeID != UUID.Zero)
70 sql += " and ScopeID = @scopeID"; 72 sql += " and ScopeID = @scopeID";
71 73
72 using (SqlConnection conn = new SqlConnection(m_ConnectionString)) 74 using (SqlConnection conn = new SqlConnection(m_ConnectionString))
73 using (SqlCommand cmd = new SqlCommand(sql, conn)) 75 using (SqlCommand cmd = new SqlCommand(sql, conn))
74 { 76 {
75 77 cmd.Parameters.Add(m_database.CreateParameter("@principalID", principalID));
76 cmd.Parameters.AddWithValue("@principalID", principalID); 78 cmd.Parameters.Add(m_database.CreateParameter("@scopeID", scopeID));
77 cmd.Parameters.AddWithValue("@scopeID", scopeID); 79
78 conn.Open(); 80 conn.Open();
79 using (SqlDataReader result = cmd.ExecuteReader()) 81 using (SqlDataReader result = cmd.ExecuteReader())
80 { 82 {
@@ -123,17 +125,16 @@ namespace OpenSim.Data.MSSQL
123 using (SqlCommand cmd = new SqlCommand()) 125 using (SqlCommand cmd = new SqlCommand())
124 { 126 {
125 StringBuilder updateBuilder = new StringBuilder(); 127 StringBuilder updateBuilder = new StringBuilder();
126 updateBuilder.AppendFormat("update '{0}' set ", m_Realm); 128 updateBuilder.AppendFormat("update {0} set ", m_Realm);
127 bool first = true; 129 bool first = true;
128 foreach (string field in fields) 130 foreach (string field in fields)
129 { 131 {
130 if (!first) 132 if (!first)
131 updateBuilder.Append(", "); 133 updateBuilder.Append(", ");
132 updateBuilder.AppendFormat("'{0}' = @{0}", field); 134 updateBuilder.AppendFormat("{0} = @{0}", field);
133 135
134 first = false; 136 first = false;
135 137 cmd.Parameters.Add(m_database.CreateParameter("@" + field, data.Data[field]));
136 cmd.Parameters.AddWithValue("@" + field, data.Data[field]);
137 } 138 }
138 139
139 updateBuilder.Append(" where UUID = @principalID"); 140 updateBuilder.Append(" where UUID = @principalID");
@@ -143,16 +144,16 @@ namespace OpenSim.Data.MSSQL
143 144
144 cmd.CommandText = updateBuilder.ToString(); 145 cmd.CommandText = updateBuilder.ToString();
145 cmd.Connection = conn; 146 cmd.Connection = conn;
146 cmd.Parameters.AddWithValue("@principalID", data.PrincipalID); 147 cmd.Parameters.Add(m_database.CreateParameter("@principalID", data.PrincipalID));
147 cmd.Parameters.AddWithValue("@scopeID", data.ScopeID); 148 cmd.Parameters.Add(m_database.CreateParameter("@scopeID", data.ScopeID));
148 conn.Open(); 149 conn.Open();
149 150
150 if (cmd.ExecuteNonQuery() < 1) 151 if (cmd.ExecuteNonQuery() < 1)
151 { 152 {
152 StringBuilder insertBuilder = new StringBuilder(); 153 StringBuilder insertBuilder = new StringBuilder();
153 insertBuilder.AppendFormat("insert into '{0}' ('UUID', 'ScopeID', '", m_Realm); 154 insertBuilder.AppendFormat("insert into {0} (UUID, ScopeID, ", m_Realm);
154 insertBuilder.Append(String.Join("', '", fields)); 155 insertBuilder.Append(String.Join(", ", fields));
155 insertBuilder.Append("') values (@principalID, @scopeID, @"); 156 insertBuilder.Append(") values ( @principalID, @scopeID, @");
156 insertBuilder.Append(String.Join(", @", fields)); 157 insertBuilder.Append(String.Join(", @", fields));
157 insertBuilder.Append(")"); 158 insertBuilder.Append(")");
158 159
@@ -169,12 +170,13 @@ namespace OpenSim.Data.MSSQL
169 170
170 public bool SetDataItem(UUID principalID, string item, string value) 171 public bool SetDataItem(UUID principalID, string item, string value)
171 { 172 {
172 string sql = string.Format("update '{0}' set '{1}' = @{1} where UUID = @UUID", m_Realm, item); 173 string sql = string.Format("update {0} set {1} = @{1} where UUID = @UUID", m_Realm, item);
173 using (SqlConnection conn = new SqlConnection(m_ConnectionString)) 174 using (SqlConnection conn = new SqlConnection(m_ConnectionString))
174 using (SqlCommand cmd = new SqlCommand(sql, conn)) 175 using (SqlCommand cmd = new SqlCommand(sql, conn))
175 { 176 {
176 cmd.Parameters.AddWithValue("@" + item, value); 177 cmd.Parameters.Add(m_database.CreateParameter("@" + item, value));
177 cmd.Parameters.AddWithValue("@UUID", principalID); 178 cmd.Parameters.Add(m_database.CreateParameter("@UUID", principalID));
179
178 conn.Open(); 180 conn.Open();
179 181
180 if (cmd.ExecuteNonQuery() > 0) 182 if (cmd.ExecuteNonQuery() > 0)