From 3ee195b1e6ff02715c132da431152276b464eaec Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Mon, 14 May 2007 16:13:31 +0000 Subject: * Commented out GridManager lines until they are checked into SVN * Added new GetProfilesInRange(x,y,x,y) data function to return sim profiles between certain coordinates (for use with World Map information, etc). Implemented in GridServer.Data.Mysql - stub functions placed in other data providers. --- OpenGrid.Framework.Data.MySQL/MySQLGridData.cs | 39 +++++++++++++++++++++++++- OpenGrid.Framework.Data.MySQL/MySQLManager.cs | 1 - 2 files changed, 38 insertions(+), 2 deletions(-) (limited to 'OpenGrid.Framework.Data.MySQL') diff --git a/OpenGrid.Framework.Data.MySQL/MySQLGridData.cs b/OpenGrid.Framework.Data.MySQL/MySQLGridData.cs index 3dceff6..46183b4 100644 --- a/OpenGrid.Framework.Data.MySQL/MySQLGridData.cs +++ b/OpenGrid.Framework.Data.MySQL/MySQLGridData.cs @@ -14,7 +14,7 @@ namespace OpenGrid.Framework.Data.MySQL /// public void Initialise() { - database = new MySQLManager("server", "database", "username", "password", "false"); + database = new MySQLManager("localhost", "database", "username", "password", "false"); } /// @@ -35,6 +35,43 @@ namespace OpenGrid.Framework.Data.MySQL return "0.1"; } + public SimProfileData[] GetProfilesInRange(uint xmin, uint ymin, uint xmax, uint ymax) + { + try + { + lock (database) + { + Dictionary param = new Dictionary(); + param["?xmin"] = xmin.ToString(); + param["?ymin"] = ymin.ToString(); + param["?xmax"] = xmax.ToString(); + param["?ymax"] = ymax.ToString(); + + System.Data.IDbCommand result = database.Query("SELECT * FROM regions WHERE locX >= ?xmin AND locX <= ?xmax AND locY >= ?ymin AND locY <= ?ymax", param); + System.Data.IDataReader reader = result.ExecuteReader(); + + SimProfileData row; + + List rows = new List(); + + while ((row = database.getSimRow(reader)) != null) + { + rows.Add(row); + } + reader.Close(); + result.Dispose(); + + return rows.ToArray(); + + } + } + catch (Exception e) + { + Console.WriteLine(e.ToString()); + return null; + } + } + /// /// Returns a sim profile from it's location /// diff --git a/OpenGrid.Framework.Data.MySQL/MySQLManager.cs b/OpenGrid.Framework.Data.MySQL/MySQLManager.cs index 7461b14..e4622a8 100644 --- a/OpenGrid.Framework.Data.MySQL/MySQLManager.cs +++ b/OpenGrid.Framework.Data.MySQL/MySQLManager.cs @@ -121,7 +121,6 @@ namespace OpenGrid.Framework.Data.MySQL } else { - throw new Exception("Unable to find region at coordinates"); return null; } return retval; -- cgit v1.1