From 4880bd121e737e0a5c384fddf61bd220c77ef88a Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Wed, 13 Feb 2008 13:39:51 +0000 Subject: * Split out MSSQLManager Test/Init into each provider. * Made regions table name configurable (MSSQL only) * Added a note in ini.example pointing out that the sql resources have to change if you change table names * Removed duplicate picker method from GridData interface [Provided by openlifegrid.com] --- OpenSim/Framework/Data.MSSQL/MSSQLUserData.cs | 54 ++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 10 deletions(-) (limited to 'OpenSim/Framework/Data.MSSQL/MSSQLUserData.cs') diff --git a/OpenSim/Framework/Data.MSSQL/MSSQLUserData.cs b/OpenSim/Framework/Data.MSSQL/MSSQLUserData.cs index 60e6df4..aacbb2d 100644 --- a/OpenSim/Framework/Data.MSSQL/MSSQLUserData.cs +++ b/OpenSim/Framework/Data.MSSQL/MSSQLUserData.cs @@ -85,8 +85,42 @@ namespace OpenSim.Framework.Data.MSSQL database = new MSSQLManager(settingDataSource, settingInitialCatalog, settingPersistSecurityInfo, settingUserId, settingPassword); + + if (!TestTables()) + { + database.ExecuteResourceSql("Mssql-agents.sql"); + database.ExecuteResourceSql("Mssql-users.sql"); + database.ExecuteResourceSql("Mssql-userfriends.sql"); + } } + private bool TestTables() + { + IDbCommand cmd = database.Query("select top 1 webLoginKey from "+m_usersTableName, new Dictionary()); + try + { + cmd.ExecuteNonQuery(); + cmd.Dispose(); + } + catch + { + database.Query("alter table "+m_usersTableName+" add column [webLoginKey] varchar(36) default NULL", new Dictionary()); + cmd.ExecuteNonQuery(); + cmd.Dispose(); + } + + cmd = database.Query("select top 1 * from "+m_usersTableName, new Dictionary()); + try + { + cmd.ExecuteNonQuery(); + } + catch + { + return false; + } + + return true; + } /// /// Searches the database for a specified user profile by name components /// @@ -104,7 +138,7 @@ namespace OpenSim.Framework.Data.MSSQL param["second"] = last; IDbCommand result = - database.Query("SELECT * FROM "+m_usersTableName+" WHERE username = @first AND lastname = @second", param); + database.Query("SELECT * FROM " + m_usersTableName + " WHERE username = @first AND lastname = @second", param); IDataReader reader = result.ExecuteReader(); UserProfileData row = database.readUserRow(reader); @@ -153,7 +187,7 @@ namespace OpenSim.Framework.Data.MSSQL m_log.Info("[USER]: Stub UpdateUserCUrrentRegion called"); } - + public List GeneratePickerResults(LLUUID queryID, string query) { @@ -180,9 +214,9 @@ namespace OpenSim.Framework.Data.MSSQL while (reader.Read()) { Framework.AvatarPickerAvatar user = new Framework.AvatarPickerAvatar(); - user.AvatarID = new LLUUID((string) reader["UUID"]); - user.firstName = (string) reader["username"]; - user.lastName = (string) reader["surname"]; + user.AvatarID = new LLUUID((string)reader["UUID"]); + user.firstName = (string)reader["username"]; + user.lastName = (string)reader["surname"]; returnlist.Add(user); } reader.Close(); @@ -216,9 +250,9 @@ namespace OpenSim.Framework.Data.MSSQL while (reader.Read()) { Framework.AvatarPickerAvatar user = new Framework.AvatarPickerAvatar(); - user.AvatarID = new LLUUID((string) reader["UUID"]); - user.firstName = (string) reader["username"]; - user.lastName = (string) reader["surname"]; + user.AvatarID = new LLUUID((string)reader["UUID"]); + user.firstName = (string)reader["username"]; + user.lastName = (string)reader["surname"]; returnlist.Add(user); } reader.Close(); @@ -323,7 +357,7 @@ namespace OpenSim.Framework.Data.MSSQL UserProfileData user = GetUserByUUID(AgentID); user.webLoginKey = WebLoginKey; UpdateUserProfile(user); - + } /// /// Creates a new users profile @@ -342,7 +376,7 @@ namespace OpenSim.Framework.Data.MSSQL user.lastLogin, user.userInventoryURI, user.userAssetURI, user.profileCanDoMask, user.profileWantDoMask, user.profileAboutText, user.profileFirstText, user.profileImage, - user.profileFirstImage,user.webLoginKey); + user.profileFirstImage, user.webLoginKey); } } catch (Exception e) -- cgit v1.1