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/MSSQLGridData.cs | 127 ++++++++------------------
1 file changed, 36 insertions(+), 91 deletions(-)
(limited to 'OpenSim/Framework/Data.MSSQL/MSSQLGridData.cs')
diff --git a/OpenSim/Framework/Data.MSSQL/MSSQLGridData.cs b/OpenSim/Framework/Data.MSSQL/MSSQLGridData.cs
index 28eec3e..0df88b6 100644
--- a/OpenSim/Framework/Data.MSSQL/MSSQLGridData.cs
+++ b/OpenSim/Framework/Data.MSSQL/MSSQLGridData.cs
@@ -47,21 +47,48 @@ namespace OpenSim.Framework.Data.MSSQL
///
private MSSQLManager database;
+ private string m_regionsTableName;
+
///
/// Initialises the Grid Interface
///
public void Initialise()
{
- IniFile GridDataMySqlFile = new IniFile("mssql_connection.ini");
- string settingDataSource = GridDataMySqlFile.ParseFileReadValue("data_source");
- string settingInitialCatalog = GridDataMySqlFile.ParseFileReadValue("initial_catalog");
- string settingPersistSecurityInfo = GridDataMySqlFile.ParseFileReadValue("persist_security_info");
- string settingUserId = GridDataMySqlFile.ParseFileReadValue("user_id");
- string settingPassword = GridDataMySqlFile.ParseFileReadValue("password");
+ IniFile iniFile = new IniFile("mssql_connection.ini");
+
+ string settingDataSource = iniFile.ParseFileReadValue("data_source");
+ string settingInitialCatalog = iniFile.ParseFileReadValue("initial_catalog");
+ string settingPersistSecurityInfo = iniFile.ParseFileReadValue("persist_security_info");
+ string settingUserId = iniFile.ParseFileReadValue("user_id");
+ string settingPassword = iniFile.ParseFileReadValue("password");
+
+ m_regionsTableName = iniFile.ParseFileReadValue("regionstablename");
+ if (m_regionsTableName == null)
+ {
+ m_regionsTableName = "regions";
+ }
database =
new MSSQLManager(settingDataSource, settingInitialCatalog, settingPersistSecurityInfo, settingUserId,
settingPassword);
+
+ TestTables();
+ }
+
+ private void TestTables()
+ {
+ IDbCommand cmd = database.Query("SELECT * FROM "+m_regionsTableName, new Dictionary());
+
+ try
+ {
+ cmd.ExecuteNonQuery();
+ cmd.Dispose();
+ }
+ catch (Exception)
+ {
+ m_log.Info("[DATASTORE]: MSSQL Database doesn't exist... creating");
+ database.ExecuteResourceSql("Mssql-regions.sql");
+ }
}
///
@@ -115,7 +142,7 @@ namespace OpenSim.Framework.Data.MSSQL
{
Dictionary param = new Dictionary();
param["handle"] = handle.ToString();
- IDbCommand result = database.Query("SELECT * FROM regions WHERE regionHandle = @handle", param);
+ IDbCommand result = database.Query("SELECT * FROM " + m_regionsTableName + " WHERE regionHandle = @handle", param);
reader = result.ExecuteReader();
RegionProfileData row = database.getRegionRow(reader);
@@ -134,89 +161,7 @@ namespace OpenSim.Framework.Data.MSSQL
return null;
}
- ///
- /// // Returns a list of avatar and UUIDs that match the query
- ///
- public List GeneratePickerResults(LLUUID queryID, string query)
- {
- List returnlist = new List();
- string[] querysplit;
- querysplit = query.Split(' ');
- if (querysplit.Length == 2)
- {
- try
- {
- lock (database)
- {
- Dictionary param = new Dictionary();
- param["first"] = querysplit[0];
- param["second"] = querysplit[1];
-
- IDbCommand result =
- database.Query(
- "SELECT UUID,username,surname FROM users WHERE username = @first AND lastname = @second",
- param);
- IDataReader reader = result.ExecuteReader();
-
-
- while (reader.Read())
- {
- AvatarPickerAvatar user = new AvatarPickerAvatar();
- user.AvatarID = new LLUUID((string) reader["UUID"]);
- user.firstName = (string) reader["username"];
- user.lastName = (string) reader["surname"];
- returnlist.Add(user);
- }
- reader.Close();
- result.Dispose();
- }
- }
- catch (Exception e)
- {
- database.Reconnect();
- m_log.Error(e.ToString());
- return returnlist;
- }
- }
- else if (querysplit.Length == 1)
- {
- try
- {
- lock (database)
- {
- Dictionary param = new Dictionary();
- param["first"] = querysplit[0];
- param["second"] = querysplit[1];
-
- IDbCommand result =
- database.Query(
- "SELECT UUID,username,surname FROM users WHERE username = @first OR lastname = @second",
- param);
- IDataReader reader = result.ExecuteReader();
-
-
- while (reader.Read())
- {
- AvatarPickerAvatar user = new AvatarPickerAvatar();
- user.AvatarID = new LLUUID((string) reader["UUID"]);
- user.firstName = (string) reader["username"];
- user.lastName = (string) reader["surname"];
- returnlist.Add(user);
- }
- reader.Close();
- result.Dispose();
- }
- }
- catch (Exception e)
- {
- database.Reconnect();
- m_log.Error(e.ToString());
- return returnlist;
- }
- }
- return returnlist;
- }
-
+
///
/// Returns a sim profile from it's UUID
///
@@ -226,7 +171,7 @@ namespace OpenSim.Framework.Data.MSSQL
{
Dictionary param = new Dictionary();
param["uuid"] = uuid.ToString();
- IDbCommand result = database.Query("SELECT * FROM regions WHERE uuid = @uuid", param);
+ IDbCommand result = database.Query("SELECT * FROM " + m_regionsTableName + " WHERE uuid = @uuid", param);
IDataReader reader = result.ExecuteReader();
RegionProfileData row = database.getRegionRow(reader);
--
cgit v1.1