コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
        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();
            };
        }
コード例 #6
0
        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);
            }
        }
コード例 #7
0
        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);
            }
        }
コード例 #8
0
ファイル: MonetDbDriver.cs プロジェクト: rajeshpillai/MonetDB
 /// <summary>
 ///
 /// </summary>
 /// <param name="connectionString"></param>
 public MonetDbDriver(string connectionString)
 {
     Database = new MonetDatabase(connectionString.RegisterDriverConnectionParameters());
     BulkCopy = new MonetBulkCopy(Database);
 }
コード例 #9
0
        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();
        }
コード例 #10
0
ファイル: MonetBulkCopy.cs プロジェクト: rajeshpillai/MonetDB
 /// <summary>
 /// </summary>
 /// <param name="db"></param>
 public MonetBulkCopy(MonetDatabase db)
 {
     _db = db;
 }