private void btnCreateDb_Click(object sender, EventArgs e) { try { var monetConnection = DatabaseForm.GetDatabaseInfo(_serverName); if (monetConnection == null) { return; } _db = new MonetDatabase(monetConnection.ToString()); if (_db.StatusDatabase() == DatabaseStatus.Started) { MessageBox.Show(@"Database already created", @"Database", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } _db.CreateDatabase(); LoggerHelper.Write(LoggerOption.Info, "Database {0} created", _db.ConnectionInfo.Database); } catch (Exception exp) { MessageBox.Show(exp.Message, @"Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); LoggerHelper.Write(LoggerOption.Error, "Error: {0}", exp.Message); } }
private void btnLoadDb_Click(object sender, EventArgs e) { try { var connectionInfo = GetConnectionString(); if (string.IsNullOrWhiteSpace(connectionInfo)) { return; } _db = new MonetDatabase(connectionInfo); if (_db.StatusDatabase() == DatabaseStatus.Started) { MessageBox.Show(@"Database already loaded", @"Database", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } _db.LoadDatabase(); LoggerHelper.Write(LoggerOption.Info, "Database {0} loaded", _db.ConnectionInfo.Database); } catch (Exception exp) { MessageBox.Show(exp.Message, @"Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); LoggerHelper.Write(LoggerOption.Error, "Error: {0}", exp.Message); } }
private void btnKillDb_Click(object sender, EventArgs e) { try { var connectionString = GetConnectionString(); if (string.IsNullOrWhiteSpace(connectionString)) { return; } _db = new MonetDatabase(connectionString); if (_db.StatusDatabase() == DatabaseStatus.None) { MessageBox.Show(@"Database is not exists", @"Database", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } _db.KillDatabase(); LoggerHelper.Write(LoggerOption.Warning, "Database {0} killed", _db.ConnectionInfo.Database); } catch (Exception exp) { MessageBox.Show(exp.Message, @"Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); LoggerHelper.Write(LoggerOption.Error, "Error: {0}", exp.Message); } }
private void saveToolStripMenuItem_Click(object sender, EventArgs e) { _db = new MonetDatabase(_connectionInfo.ToString()); try { var fileName = AskSaveFile(); if (string.IsNullOrWhiteSpace(fileName)) { return; } var model = MonetConfigurationHelper.GetConfiguration(Path.Combine(IoHelper.CurrentRoot, MonetSettings.MonetConfigurationFile)); var file = Path.Combine(model.DbInstallerDir, "bin\\msqldump.exe"); var args = $"-h \"{_db.ConnectionInfo.Host}\" -p {_db.ConnectionInfo.GetPort()} -d \"{_db.ConnectionInfo.Database}\" -u \"{_db.ConnectionInfo.UserName}\""; LoggerHelper.Write(LoggerOption.Info, "Database dumping started..."); DiagnosticHelper.ShowWindowApplicationEx(file, args, fileName, null, null); LoggerHelper.Write(LoggerOption.Info, "Database dumped"); } catch (Exception exp) { MessageBox.Show(exp.Message, @"Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); LoggerHelper.Write(LoggerOption.Error, "Error: {0}", exp.Message); } }
private void Init() { _worker = new BackgroundWorker { WorkerSupportsCancellation = true, WorkerReportsProgress = true }; _worker.DoWork += delegate(object sender, DoWorkEventArgs args) { _db = new MonetDatabase(ConnectionInfo.ToString()); args.Result = _db.GetDatabases(); }; _worker.RunWorkerCompleted += delegate(object sender, RunWorkerCompletedEventArgs args) { if (dgwDbList.Columns.Count == 0) { return; } var databases = (List <MonetDatabaseInfo>)args.Result; dgwDbList.Rows.Clear(); foreach (var database in databases) { dgwDbList.Rows.Add(new object[] { database.Database, IoHelper.ToFileSize(database.Size), database.Status }); } dgwDbList.ClearSelection(); }; _timer = new Timer { Enabled = true, Interval = 10000 }; _timer.Tick += delegate(object sender, EventArgs args) { if (_worker.IsBusy) { return; } _worker.RunWorkerAsync(); }; }
private void btnDropDb_Click(object sender, EventArgs e) { try { var connectionString = GetConnectionString(); if (string.IsNullOrWhiteSpace(connectionString)) { return; } _db = new MonetDatabase(connectionString); if (_db.StatusDatabase() == DatabaseStatus.None) { MessageBox.Show(@"Database is not exists", @"Database", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } if ( MessageBox.Show(@"Do you really want to drop this database?(y/n)", @"Drop", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } _db.DropDatabase(); LoggerHelper.Write(LoggerOption.Warning, "Database {0} droped", _db.ConnectionInfo.Database); } catch (Exception exp) { MessageBox.Show(exp.Message, @"Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); LoggerHelper.Write(LoggerOption.Error, "Error: {0}", exp.Message); } }
private void sqlConsoleToolStripMenuItem_Click(object sender, EventArgs e) { _db = new MonetDatabase(_connectionInfo.ToString()); try { var model = MonetConfigurationHelper.GetConfiguration(Path.Combine(IoHelper.CurrentRoot, MonetSettings.MonetConfigurationFile)); var file = Path.Combine(model.DbInstallerDir, "bin\\mclient.exe"); var args = $"-h \"{_db.ConnectionInfo.Host}\" -p {_db.ConnectionInfo.GetPort()} -d \"{_db.ConnectionInfo.Database}\" -u \"{_db.ConnectionInfo.UserName}\" -L \"{Path.Combine(model.TempDir)}\""; LoggerHelper.Write(LoggerOption.Info, "Starting MonetDB client session..."); DiagnosticHelper.ShowWindowApplication(file, args); LoggerHelper.Write(LoggerOption.Info, "MonetDB client session closed"); } catch (Exception exp) { MessageBox.Show(exp.Message, @"Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); LoggerHelper.Write(LoggerOption.Error, "Error: {0}", exp.Message); } }
/// <summary> /// /// </summary> /// <param name="connectionString"></param> public MonetDbDriver(string connectionString) { Database = new MonetDatabase(connectionString.RegisterDriverConnectionParameters()); BulkCopy = new MonetBulkCopy(Database); }
private void btnCopy_Click(object sender, EventArgs e) { if (cbxSQLSchema.SelectedIndex == -1) { return; } var db = new MonetDatabase(_connectionInfo.ToString()); var cols = lsvSQLCols.CheckedItems.Count > 0 ? string.Join(",", lsvSQLCols.CheckedItems.Cast <ListViewItem>() .Select( s => string.Format("{1}{0}{2}", s.Text, _dataConnector.OpenScope, _dataConnector.CloseScope))) : "*"; var query = string.IsNullOrWhiteSpace(_tableInfo.Schema) ? string.Format("SELECT {0} FROM {2}{1}{3} ", cols, _tableInfo.Table, _dataConnector.OpenScope, _dataConnector.CloseScope) : string.Format("SELECT {0} FROM {3}{1}{4}.{3}{2}{4} ", cols, _tableInfo.Schema, _tableInfo.Table, _dataConnector.OpenScope, _dataConnector.CloseScope); var reader = _dataConnector.ExecuteReader(query); var batchSize = Convert.ToInt32(nudBatchSize.Value); var prog = TaskbarManager.Instance; var stopWatch = new Stopwatch(); stopWatch.Start(); _worker.DoWork += delegate(object o, DoWorkEventArgs args) { prog.SetProgressState(TaskbarProgressBarState.Normal); var bulkCopy = new MonetBulkCopy(db) { BatchSize = batchSize, NotifyAfter = batchSize }; bulkCopy.RowsCopied += delegate(object o1, RowsCopiedEventArgs args1) { if (args1.Abort) { return; } if (_worker.CancellationPending) { args.Cancel = true; throw new OperationCanceledException(); } var percent = Math.Round(100 * (decimal)args1.RowsCopied / _tableInfo.RowsCount, 3, MidpointRounding.AwayFromZero); var userState = new KeyValuePair <decimal, long>(percent, args1.RowsCopied); _worker.ReportProgress(0, userState); }; bulkCopy.Upload(_tableInfo.Schema, _tableInfo.Table, reader); }; _worker.ProgressChanged += delegate(object o, ProgressChangedEventArgs args) { var userState = (KeyValuePair <decimal, long>)args.UserState; lblCopyElapsed.Text = $"{stopWatch.Elapsed:g}"; pbrCopyStatus.Value = (int)userState.Key; prog.SetProgressValue((int)userState.Key, pbrCopyStatus.Maximum); Thread.Sleep(100); }; _worker.RunWorkerCompleted += delegate(object o, RunWorkerCompletedEventArgs args) { if (args.Cancelled) { MessageBox.Show(@"Bulk operation canceled!", @"Canceled", MessageBoxButtons.OK, MessageBoxIcon.Warning); LoggerHelper.Write(LoggerOption.Warning, @"Bulk operation canceled!"); } else if (args.Error != null) { MessageBox.Show(args.Error.Message, @"Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); LoggerHelper.Write(LoggerOption.Error, "Error: {0}", args.Error.Message); } else { MessageBox.Show(@"Bulk operation completed", @"Completed", MessageBoxButtons.OK, MessageBoxIcon.Information); LoggerHelper.Write(LoggerOption.Info, @"Bulk operation completed"); } stopWatch.Stop(); prog.SetProgressState(TaskbarProgressBarState.NoProgress); pbrCopyStatus.Value = 0; }; _worker.RunWorkerAsync(); }
/// <summary> /// </summary> /// <param name="db"></param> public MonetBulkCopy(MonetDatabase db) { _db = db; }