public DatabaseTools() { InitializeComponent(); /*** REMOVE ONCE THE UNIFIED WIX INSTALLERS ARE COMPLETE ***/ // Get database versioning OMLEngine.DatabaseManagement.DatabaseManagement dbm = new OMLEngine.DatabaseManagement.DatabaseManagement(); int dbMajor; int dbMinor; dbm.GetSchemaVersion(out dbMajor, out dbMinor); lcDatabaseVersion.Text = "Database version : " + dbMajor.ToString() + "." + dbMinor.ToString(); int dbReqMajor; int dbRejMinor; dbm.GetRequiredSchemaVersion(out dbReqMajor, out dbRejMinor); lcReqDatabaseVersion.Text = "Required Database version :" + dbReqMajor.ToString() + "." + dbRejMinor.ToString(); /*** REMOVE ONCE THE UNIFIED WIX INSTALLERS ARE COMPLETE ***/ /*** ADD ONCE THE UNIFIED WIX INSTALLERS ARE COMPLETE ***/ //OMLEngine.DatabaseManagement.DatabaseManagement dbm = new OMLEngine.DatabaseManagement.DatabaseManagement(); /*** ADD ONCE THE UNIFIED WIX INSTALLERS ARE COMPLETE ***/ int DataSize; int LogSize; dbm.GetDatabaseSize(out DataSize, out LogSize); lcDatabaseSize.Text = "Database size : Data " + DataSize.ToString() + " MB, Logs " + LogSize.ToString() + " MB"; }
private void sbBackupDB_Click(object sender, EventArgs e) { SaveFileDialog sfd = new SaveFileDialog(); sfd.AddExtension = true; sfd.DefaultExt = "bak"; sfd.FileName = "OMLDatabase"; sfd.Filter = "Backup files (*.bak)|*.bak"; sfd.FilterIndex = 1; sfd.OverwritePrompt = true; sfd.InitialDirectory = OMLEngine.FileSystemWalker.DBBackupDirectory; if (sfd.ShowDialog() == DialogResult.OK) { OMLEngine.DatabaseManagement.DatabaseManagement dbm = new OMLEngine.DatabaseManagement.DatabaseManagement(); Cursor = Cursors.WaitCursor; if (dbm.BackupDatabase(sfd.FileName)) { Cursor = Cursors.Default; XtraMessageBox.Show("The backup has been successful", "Database Backup"); } else { Cursor = Cursors.Default; XtraMessageBox.Show("The backup has failed with error : " + OMLEngine.DatabaseManagement.DatabaseInformation.LastSQLError, "Database Backup"); } } }
private bool TestDBConnection(AddInHost host) { try { //return OMLEngine.Settings.OMLSettings.IsConnected; OMLEngine.DatabaseManagement.DatabaseManagement dbm = new OMLEngine.DatabaseManagement.DatabaseManagement(); OMLEngine.DatabaseManagement.DatabaseInformation.SQLState state = dbm.CheckDatabase(); switch (state) { case OMLEngine.DatabaseManagement.DatabaseInformation.SQLState.OK: return true; case OMLEngine.DatabaseManagement.DatabaseInformation.SQLState.OMLDBVersionCodeOlderThanSchema: throw (new Exception("The OML client is an older version than the database. Please upgrade the client components!")); //is this right? case OMLEngine.DatabaseManagement.DatabaseInformation.SQLState.OMLDBVersionNotFound: return true; case OMLEngine.DatabaseManagement.DatabaseInformation.SQLState.LoginFailure: return false; case OMLEngine.DatabaseManagement.DatabaseInformation.SQLState.OMLDBVersionUpgradeRequired: { //TODO: do upgrade bits here... return true; } default: throw (new Exception(OMLEngine.DatabaseManagement.DatabaseInformation.LastSQLError)); } } catch (Exception ex) { host.MediaCenterEnvironment.Dialog( ex.Message, "CONNECTION FAILED", Microsoft.MediaCenter.DialogButtons.Ok, 5, false); return false; //this._session.Close(); } return true; }
private void sbRestoreDB_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.AddExtension = true; ofd.DefaultExt = "bak"; ofd.Filter = "Backup files (*.bak)|*.bak"; ofd.FilterIndex = 1; ofd.InitialDirectory = OMLEngine.FileSystemWalker.DBBackupDirectory; if (ofd.ShowDialog() == DialogResult.OK) { OMLEngine.DatabaseManagement.DatabaseManagement dbm = new OMLEngine.DatabaseManagement.DatabaseManagement(); if (dbm.RestoreDatabase(ofd.FileName)) { Cursor = Cursors.Default; XtraMessageBox.Show("The restore has been successful. Please close and reopen any open OML applications", "Database Restore"); } else { Cursor = Cursors.Default; XtraMessageBox.Show("The restore has failed with error : " + OMLEngine.DatabaseManagement.DatabaseInformation.LastSQLError, "Database Restore"); } } OMLEngine.ImageManager.RemoveAllCachedImages(); }
private void sbViewDatabaseFileInfo_Click(object sender, EventArgs e) { OMLEngine.DatabaseManagement.DatabaseManagement dbm = new OMLEngine.DatabaseManagement.DatabaseManagement(); List<OMLEngine.DatabaseManagement.DatabaseManagement.DatabaseFile> DBFS = dbm.GetDatabaseFileInfo(); if (DBFS != null) { StringBuilder sb = new StringBuilder(); foreach (OMLEngine.DatabaseManagement.DatabaseManagement.DatabaseFile DBF in DBFS) { sb.AppendLine("Name : " + DBF.Name + ", " + "Size : " + DBF.SizeString + ", " + "Max Size : " + DBF.MaxSizeString + ", " + "Growth : " + DBF.GrowthString); } MessageBox.Show(sb.ToString(), "Database File Information"); } }
private void sbRecreateDatabase_Click(object sender, EventArgs e) { if (MessageBox.Show("This will recreate the database deleting ALL movies, genres, people etc.\n\t Are you sure?", "Recreate database", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { if (MessageBox.Show("Are you really sure?", "Recreate database", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { OMLEngine.DatabaseManagement.DatabaseManagement dbm = new OMLEngine.DatabaseManagement.DatabaseManagement(); dbm.CreateSchema(); OMLEngine.ImageManager.RemoveAllCachedImages(); MessageBox.Show("The database has been recreated.\n Please restart any open OML appliations.", "Recreate database", MessageBoxButtons.OK); } } }
private void sbOptimizeDB_Click(object sender, EventArgs e) { if (XtraMessageBox.Show("This may take some time, do you want to continue?", "Optimize Database", MessageBoxButtons.YesNo) == DialogResult.Yes) { OMLEngine.DatabaseManagement.DatabaseManagement dbm = new OMLEngine.DatabaseManagement.DatabaseManagement(); if (dbm.OptimiseDatabase()) { Cursor = Cursors.Default; XtraMessageBox.Show("The routine has been successful", "Database Optimization"); } else { Cursor = Cursors.Default; XtraMessageBox.Show("The process has failed with error : " + OMLEngine.DatabaseManagement.DatabaseInformation.LastSQLError, "Database Optimization"); } } }
/*** REMOVE ONCE THE UNIFIED WIX INSTALLERS ARE COMPLETE ***/ /// <summary> /// Load the db connection settings and try to connect to the database. /// Give option to specify alternative sql connection details if connection /// attempt fails /// </summary> /// <returns></returns> private bool ValidateDatabase() { // Run database diagnostics OMLEngine.DatabaseManagement.DatabaseManagement dbm = new OMLEngine.DatabaseManagement.DatabaseManagement(); OMLEngine.DatabaseManagement.DatabaseInformation.SQLState state = dbm.CheckDatabase(); if (state == OMLEngine.DatabaseManagement.DatabaseInformation.SQLState.OMLDBVersionUpgradeRequired) { XtraMessageBox.Show("The OML database is an older version. Press OK to upgrade the database!", "Problem running DBEditor", MessageBoxButtons.OK); // Find the script path. Also include hack to find scripts if running from VS rathr than c:\program files.... string ScriptsPath = Path.GetDirectoryName(Application.ExecutablePath) + "\\SQLInstaller"; if (Directory.Exists( Path.GetDirectoryName(Application.ExecutablePath) + "\\..\\..\\..\\SQL Scripts")) { ScriptsPath = Path.GetDirectoryName(Application.ExecutablePath) + "\\..\\..\\..\\SQL Scripts"; } dbm.UpgradeSchemaVersion(ScriptsPath); // Retest the connection state = dbm.CheckDatabase(); } switch (state) { case OMLEngine.DatabaseManagement.DatabaseInformation.SQLState.OK: return true; case OMLEngine.DatabaseManagement.DatabaseInformation.SQLState.OMLDBVersionCodeOlderThanSchema: XtraMessageBox.Show("The OML client is an older version than the database. Please upgrade the client components!", "Problem running DBEditor", MessageBoxButtons.OK); return false; case OMLEngine.DatabaseManagement.DatabaseInformation.SQLState.OMLDBVersionNotFound: return false; case OMLEngine.DatabaseManagement.DatabaseInformation.SQLState.LoginFailure: if (XtraMessageBox.Show("This could be caused by the OML Server computer being unavailable. Do you want to specify the server used?", "Problem accessing database!", MessageBoxButtons.YesNo) == DialogResult.Yes) { SelectDatabaseServer sds = new SelectDatabaseServer(); if (sds.ShowDialog() == DialogResult.OK) { OMLEngine.DatabaseManagement.DatabaseInformation.SQLServerName = sds.Server; OMLEngine.DatabaseManagement.DatabaseInformation.SQLInstanceName = sds.SQLInstance; XtraMessageBox.Show("Please restart the program for the changes to take effect!"); } } return false; break; default: XtraMessageBox.Show(state.ToString() + " : " + OMLEngine.DatabaseManagement.DatabaseInformation.LastSQLError, "Problem accessing database!"); return false; } }
private void ConfigureSQL() { OMLEngine.DatabaseManagement.DatabaseManagement dbm = new OMLEngine.DatabaseManagement.DatabaseManagement(); dbm.ConfigureSQL(ScriptsPath); }
private void CheckAndUpgradeSchema() { OMLEngine.DatabaseManagement.DatabaseManagement dbm = new OMLEngine.DatabaseManagement.DatabaseManagement(); OMLEngine.DatabaseManagement.DatabaseInformation.SQLState state = dbm.CheckDatabase(); if (state == OMLEngine.DatabaseManagement.DatabaseInformation.SQLState.OMLDBNotFound) { MessageBox.Show("Detected SQL Server but cannot find the database. Click OK to create the database.", "Databse problem", MessageBoxButtons.OK); // OML Instance but OML database does not exist dbm.ConfigureSQL(ScriptsPath); dbm.UpgradeSchemaVersion(ScriptsPath); // Retest the connection state = dbm.CheckDatabase(); } if (state == OMLEngine.DatabaseManagement.DatabaseInformation.SQLState.OMLDBVersionUpgradeRequired) { MessageBox.Show("Detected the OML Database but it requires updating. Click OK to update the database.", "Databse problem", MessageBoxButtons.OK); dbm.UpgradeSchemaVersion(ScriptsPath); // Retest the connection state = dbm.CheckDatabase(); } if (state == OMLEngine.DatabaseManagement.DatabaseInformation.SQLState.OK) { MessageBox.Show("The database appears all fine.", "Database status", MessageBoxButtons.OK); return; } }