From 2fa5694ec9857f208b6fe4d0890fd2ab8ac1b8bf Mon Sep 17 00:00:00 2001 From: StrawberryFride Date: Wed, 24 Feb 2010 16:42:39 +0000 Subject: MSSQL Additions for Presence Refactor branch. Most functionality tested and works, some outstanding issues around login location and border crossings on y axis. Signed-off-by: Melanie --- OpenSim/Data/MSSQL/MSSQLRegionData.cs | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) (limited to 'OpenSim/Data/MSSQL/MSSQLRegionData.cs') diff --git a/OpenSim/Data/MSSQL/MSSQLRegionData.cs b/OpenSim/Data/MSSQL/MSSQLRegionData.cs index fbfb78e..66c3f81 100644 --- a/OpenSim/Data/MSSQL/MSSQLRegionData.cs +++ b/OpenSim/Data/MSSQL/MSSQLRegionData.cs @@ -129,10 +129,10 @@ namespace OpenSim.Data.MSSQL using (SqlConnection conn = new SqlConnection(m_ConnectionString)) using (SqlCommand cmd = new SqlCommand(sql, conn)) { - cmd.Parameters.Add(m_database.CreateParameter("@startX", startX.ToString())); - cmd.Parameters.Add(m_database.CreateParameter("@startY", startY.ToString())); - cmd.Parameters.Add(m_database.CreateParameter("@endX", endX.ToString())); - cmd.Parameters.Add(m_database.CreateParameter("@endY", endY.ToString())); + cmd.Parameters.Add(m_database.CreateParameter("@startX", startX)); + cmd.Parameters.Add(m_database.CreateParameter("@startY", startY)); + cmd.Parameters.Add(m_database.CreateParameter("@endX", endX)); + cmd.Parameters.Add(m_database.CreateParameter("@endY", endY)); cmd.Parameters.Add(m_database.CreateParameter("@scopeID", scopeID)); conn.Open(); return RunCommand(cmd); @@ -310,12 +310,34 @@ namespace OpenSim.Data.MSSQL public List GetDefaultRegions(UUID scopeID) { - return null; + string sql = "SELECT * FROM [" + m_Realm + "] WHERE (flags & 1) <> 0"; + if (scopeID != UUID.Zero) + sql += " AND ScopeID = @scopeID"; + + using (SqlConnection conn = new SqlConnection(m_ConnectionString)) + using (SqlCommand cmd = new SqlCommand(sql, conn)) + { + cmd.Parameters.Add(m_database.CreateParameter("@scopeID", scopeID)); + conn.Open(); + return RunCommand(cmd); + } + } public List GetFallbackRegions(UUID scopeID, int x, int y) { - return null; + string sql = "SELECT * FROM [" + m_Realm + "] WHERE (flags & 2) <> 0"; + if (scopeID != UUID.Zero) + sql += " AND ScopeID = @scopeID"; + + using (SqlConnection conn = new SqlConnection(m_ConnectionString)) + using (SqlCommand cmd = new SqlCommand(sql, conn)) + { + cmd.Parameters.Add(m_database.CreateParameter("@scopeID", scopeID)); + conn.Open(); + // TODO: distance-sort results + return RunCommand(cmd); + } } } } -- cgit v1.1