/// <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();
        }