OrderBy... Bye bye. DBTool fixes

This commit is contained in:
Twitchy 2011-07-29 12:21:28 +12:00
parent 8f28bd2b7d
commit 917865cab5
3 changed files with 17 additions and 20 deletions

View file

@ -18,11 +18,16 @@ namespace TShockAPI.DB
string query; string query;
if (TShock.Config.StorageType.ToLower() == "sqlite") if (TShock.Config.StorageType.ToLower() == "sqlite")
query = {
"CREATE TABLE IF NOT EXISTS 'GroupList' ('GroupName' TEXT PRIMARY KEY, 'Commands' TEXT, 'OrderBy' TEXT);"; db.Query("CREATE TABLE IF NOT EXISTS 'GroupList' (GroupName TEXT PRIMARY KEY, Commands TEXT, 'OrderBy' TEXT);");
query = "CREATE TEMPORARY TABLE GroupList_backup('GroupName' TEXT PRIMARY KEY, 'Commands' TEXT); INSERT INTO GroupList_backup SELECT 'GroupName','Commands' FROM GroupList; DROP TABLE GroupList; CREATE TABLE IF NOT EXISTS GroupList('GroupName' TEXT PRIMARY KEY, 'Commands' TEXT); INSERT INTO 'GroupList' SELECT 'GroupName','Commands' FROM GroupList_backup; DROP TABLE GroupList_backup;";
}
else else
{
query = query =
"CREATE TABLE IF NOT EXISTS GroupList (GroupName VARCHAR(255) PRIMARY, Commands VARCHAR(255), OrderBy VARCHAR(255));"; "CREATE TABLE IF NOT EXISTS GroupList (GroupName VARCHAR(255) PRIMARY, Commands VARCHAR(255));";
db.Query("ALTER TABLE GroupList DROP COLUMN OrderBy");
}
db.Query(query); db.Query(query);
@ -46,10 +51,6 @@ namespace TShockAPI.DB
String[] info = line.Split(' '); String[] info = line.Split(' ');
String comms = ""; String comms = "";
int size = info.Length; int size = info.Length;
int test = 0;
bool hasOrder = int.TryParse(info[info.Length - 1], out test);
if (hasOrder)
size = info.Length - 1;
for (int i = 1; i < size; i++) for (int i = 1; i < size; i++)
{ {
if (!comms.Equals("")) if (!comms.Equals(""))
@ -58,11 +59,11 @@ namespace TShockAPI.DB
} }
if (TShock.Config.StorageType.ToLower() == "sqlite") if (TShock.Config.StorageType.ToLower() == "sqlite")
query = "INSERT OR IGNORE INTO GroupList (GroupName, Commands, OrderBy) VALUES (@0, @1, @2);"; query = "INSERT OR IGNORE INTO GroupList (GroupName, Commands) VALUES (@0, @1);";
else if (TShock.Config.StorageType.ToLower() == "mysql") else if (TShock.Config.StorageType.ToLower() == "mysql")
query = "INSERT IGNORE INTO GroupList SET GroupName=@0, Commands=@1, OrderBy=@2;"; query = "INSERT IGNORE INTO GroupList SET GroupName=@0, Commands=@1;";
db.Query(query, info[0].Trim(), comms, hasOrder ? info[info.Length - 1] : "0"); db.Query(query, info[0].Trim(), comms);
} }
} }
@ -105,12 +106,10 @@ namespace TShockAPI.DB
if (GroupExists(name)) if (GroupExists(name))
return "Error: Group already exists. Use /modGroup to change permissions."; return "Error: Group already exists. Use /modGroup to change permissions.";
string query = (TShock.Config.StorageType.ToLower() == "sqlite") ? string query = (TShock.Config.StorageType.ToLower() == "sqlite") ?
"INSERT OR IGNORE INTO GroupList (GroupName, Commands, OrderBy) VALUES (@0, @1, @2);" : "INSERT OR IGNORE INTO GroupList (GroupName, Commands) VALUES (@0, @1);" :
"INSERT IGNORE INTO GroupList SET GroupName=@0, Commands=@1, OrderBy=@2;"; "INSERT IGNORE INTO GroupList SET GroupName=@0, Commands=@1";
if (database.Query(query, name, permissions, "0") == 1) if (database.Query(query, name, permissions) == 1)
message = "Group " + name + " has been created successfully."; message = "Group " + name + " has been created successfully.";
Group g = new Group(name); Group g = new Group(name);
g.permissions.Add(permissions); g.permissions.Add(permissions);

View file

@ -52,7 +52,7 @@ namespace TShockAPI
} }
if (column.Unique) if (column.Unique)
sb.Append("UNIQUE "); sb.Append("UNIQUE");
if (columns.Count == count) if (columns.Count == count)
sb.Append(")"); sb.Append(")");
@ -60,10 +60,7 @@ namespace TShockAPI
sb.Append(", "); sb.Append(", ");
} }
using (var com = database.CreateCommand()) database.Query(sb.ToString());
{
com.CommandText = sb.ToString();
}
} }
/// <summary> /// <summary>

View file

@ -156,6 +156,7 @@ namespace TShockAPI
} }
DBTools.database = DB; DBTools.database = DB;
Backups = new BackupManager(Path.Combine(SavePath, "backups")); Backups = new BackupManager(Path.Combine(SavePath, "backups"));
Backups.KeepFor = Config.BackupKeepFor; Backups.KeepFor = Config.BackupKeepFor;
Backups.Interval = Config.BackupInterval; Backups.Interval = Config.BackupInterval;