diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Framework/Data.MySQL/MySQLUserData.cs | 81 |
1 files changed, 80 insertions, 1 deletions
diff --git a/OpenSim/Framework/Data.MySQL/MySQLUserData.cs b/OpenSim/Framework/Data.MySQL/MySQLUserData.cs index 8846650..3ae1fba 100644 --- a/OpenSim/Framework/Data.MySQL/MySQLUserData.cs +++ b/OpenSim/Framework/Data.MySQL/MySQLUserData.cs | |||
@@ -97,7 +97,6 @@ namespace OpenSim.Framework.Data.MySQL | |||
97 | 97 | ||
98 | reader.Close(); | 98 | reader.Close(); |
99 | result.Dispose(); | 99 | result.Dispose(); |
100 | |||
101 | return row; | 100 | return row; |
102 | } | 101 | } |
103 | } | 102 | } |
@@ -108,7 +107,87 @@ namespace OpenSim.Framework.Data.MySQL | |||
108 | return null; | 107 | return null; |
109 | } | 108 | } |
110 | } | 109 | } |
110 | public List<OpenSim.Framework.AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query) | ||
111 | { | ||
112 | List<OpenSim.Framework.AvatarPickerAvatar> returnlist = new List<OpenSim.Framework.AvatarPickerAvatar>(); | ||
113 | string[] querysplit; | ||
114 | querysplit = query.Split(' '); | ||
115 | if (querysplit.Length == 2) | ||
116 | { | ||
117 | try | ||
118 | { | ||
119 | lock (database) | ||
120 | { | ||
121 | Dictionary<string, string> param = new Dictionary<string, string>(); | ||
122 | param["?first"] = querysplit[0]; | ||
123 | param["?second"] = querysplit[1]; | ||
124 | |||
125 | IDbCommand result = | ||
126 | database.Query("SELECT UUID,username,surname FROM users WHERE username = ?first AND lastname = ?second", param); | ||
127 | IDataReader reader = result.ExecuteReader(); | ||
128 | |||
129 | |||
130 | while (reader.Read()) | ||
131 | { | ||
132 | OpenSim.Framework.AvatarPickerAvatar user = new OpenSim.Framework.AvatarPickerAvatar(); | ||
133 | user.AvatarID = new LLUUID((string)reader["UUID"]); | ||
134 | user.firstName = (string)reader["username"]; | ||
135 | user.lastName = (string)reader["surname"]; | ||
136 | returnlist.Add(user); | ||
137 | |||
138 | } | ||
139 | reader.Close(); | ||
140 | result.Dispose(); | ||
141 | } | ||
142 | } | ||
143 | catch (Exception e) | ||
144 | { | ||
145 | database.Reconnect(); | ||
146 | MainLog.Instance.Error(e.ToString()); | ||
147 | return returnlist; | ||
148 | } | ||
111 | 149 | ||
150 | |||
151 | |||
152 | } | ||
153 | else if (querysplit.Length == 1) | ||
154 | { | ||
155 | |||
156 | try | ||
157 | { | ||
158 | lock (database) | ||
159 | { | ||
160 | Dictionary<string, string> param = new Dictionary<string, string>(); | ||
161 | param["?first"] = querysplit[0]; | ||
162 | param["?second"] = querysplit[1]; | ||
163 | |||
164 | IDbCommand result = | ||
165 | database.Query("SELECT UUID,username,surname FROM users WHERE username = ?first OR lastname = ?second", param); | ||
166 | IDataReader reader = result.ExecuteReader(); | ||
167 | |||
168 | |||
169 | while (reader.Read()) | ||
170 | { | ||
171 | OpenSim.Framework.AvatarPickerAvatar user = new OpenSim.Framework.AvatarPickerAvatar(); | ||
172 | user.AvatarID = new LLUUID((string)reader["UUID"]); | ||
173 | user.firstName = (string)reader["username"]; | ||
174 | user.lastName = (string)reader["surname"]; | ||
175 | returnlist.Add(user); | ||
176 | |||
177 | } | ||
178 | reader.Close(); | ||
179 | result.Dispose(); | ||
180 | } | ||
181 | } | ||
182 | catch (Exception e) | ||
183 | { | ||
184 | database.Reconnect(); | ||
185 | MainLog.Instance.Error(e.ToString()); | ||
186 | return returnlist; | ||
187 | } | ||
188 | } | ||
189 | return returnlist; | ||
190 | } | ||
112 | /// <summary> | 191 | /// <summary> |
113 | /// Searches the database for a specified user profile by UUID | 192 | /// Searches the database for a specified user profile by UUID |
114 | /// </summary> | 193 | /// </summary> |