/// <summary> /// On a new Sqlite database, this method will create the default tables /// </summary> /// <param name="Driver"></param> private void CreateSqliteTables(DatabaseDriver Driver) { // Show Progress Form MainForm.Disable(); bool TaskFormWasOpen = TaskForm.IsOpen; if(!TaskFormWasOpen) TaskForm.Show(MainForm.Instance, "Create Database", "Creating Bf2Stats SQLite Database...", false); // Create Tables TaskForm.UpdateStatus("Creating Stats Tables"); string SQL = Utils.GetResourceAsString("BF2Statistics.SQL.SQLite.Stats.sql"); Driver.Execute(SQL); // Insert Ip2Nation data TaskForm.UpdateStatus("Inserting Ip2Nation Data"); SQL = Utils.GetResourceAsString("BF2Statistics.SQL.Ip2nation.sql"); DbTransaction Transaction = Driver.BeginTransaction(); Driver.Execute(SQL); // Attempt to do the transaction try { Transaction.Commit(); } catch (Exception E) { Transaction.Rollback(); if(!TaskFormWasOpen) TaskForm.CloseForm(); MainForm.Enable(); throw E; } // Close update progress form if(!TaskFormWasOpen) TaskForm.CloseForm(); MainForm.Enable(); }
/// <summary> /// On a new Mysql database, this method will create the default tables /// </summary> /// <param name="Driver"></param> private void CreateMysqlTables(DatabaseDriver Driver) { // Show Progress Form MainForm.Disable(); bool TaskFormWasOpen = TaskForm.IsOpen; if (!TaskFormWasOpen) TaskForm.Show(MainForm.Instance, "Create Database", "Creating Bf2Stats Mysql Tables...", false); // To prevent packet size errors Driver.Execute("SET GLOBAL max_allowed_packet=51200"); // Start Transaction DbTransaction Transaction = Driver.BeginTransaction(); TaskForm.UpdateStatus("Creating Stats Tables"); // Gets Table Queries string[] SQL = Utils.GetResourceFileLines("BF2Statistics.SQL.MySQL.Stats.sql"); List<string> Queries = Utilities.Sql.ExtractQueries(SQL); // Attempt to do the transaction try { // Create Tables foreach (string Query in Queries) Driver.Execute(Query); // Commit Transaction.Commit(); } catch (Exception E) { Transaction.Rollback(); if (!TaskFormWasOpen) TaskForm.CloseForm(); MainForm.Enable(); throw E; } // Insert Ip2Nation data Transaction = Driver.BeginTransaction(); TaskForm.UpdateStatus("Inserting Ip2Nation Data"); SQL = Utils.GetResourceFileLines("BF2Statistics.SQL.Ip2nation.sql"); Queries = Utilities.Sql.ExtractQueries(SQL); // Attempt to do the transaction try { // Insert rows foreach (string Query in Queries) Driver.Execute(Query); // Commit Transaction.Commit(); } catch (Exception E) { Transaction.Rollback(); if(!TaskFormWasOpen) TaskForm.CloseForm(); MainForm.Enable(); throw E; } // Close update progress form if (!TaskFormWasOpen) TaskForm.CloseForm(); MainForm.Enable(); }