예제 #1
0
        private void hsCreateDatabase_Click(object sender, EventArgs e)
        {
            var  fi = new FileInfo(txtCreateDatabaseLocationFile.Text);
            bool ok = false;

            if (fi.Exists)
            {
                object[] param = { $@"{txtServer.Text}:{txtCreateDatabaseLocationFile.Text}", Environment.NewLine };
                if (SEMessageBox.ShowMDIDialog(FbXpertMainForm.Instance(), "DatabaseExistsCaption", "OverrideExistingDatabase", SEMessageBoxButtons.NoYes, SEMessageBoxIcon.Asterisk, null, param) == SEDialogResult.Yes)
                {
                    ok = DBProviderSet.CreateDatabase(txtCreateDatabaseLocationFile.Text, txtServer.Text, (int)numPort.Value, txtUser.Text, txtPassword.Text, (int)numPacketSize.Value, txtClientLibrary.Text, true, true);
                }
            }
            else
            {
                if (!fi.Directory.Exists)
                {
                    return;
                }
                ok = DBProviderSet.CreateDatabase(txtCreateDatabaseLocationFile.Text, txtServer.Text, (int)numPort.Value, txtUser.Text, txtPassword.Text, (int)numPacketSize.Value, txtClientLibrary.Text, true, true);
            }

            if (!ok)
            {
                SEMessageBox.ShowMDIDialog(FbXpertMainForm.Instance(), "DatabaseError", "DatabaseNotCreated", SEMessageBoxButtons.OK, SEMessageBoxIcon.Asterisk, null, null);
            }
        }
예제 #2
0
        private void DoGSTAT()
        {
            fctGSTATOutput.Clear();
            fctGSTATOutput.AppendText($@"{DateTime.Now.ToShortDateString()} {DateTime.Now.ToLongTimeString()} Starting of GSTAT{Environment.NewLine}");

            string   args    = txtGSTATParameters.Text.Replace("****", _dbReg.Password);
            string   binfile = $@"{_dbReg.GetFirebirdBinaryPath()}\gstat.exe";
            FileInfo fi      = new FileInfo(binfile);

            if (!fi.Exists)
            {
                object[] p = { fi.FullName, Environment.NewLine };
                SEMessageBox.ShowMDIDialog(FbXpertMainForm.Instance(), "FileNotExistsCaption", "FileNotExists", FormStartPosition.CenterScreen, SEMessageBoxButtons.OK, SEMessageBoxIcon.Exclamation, null, p);
                return;
            }
            var psi = new ProcessStartInfo(binfile, args);

            psi.RedirectStandardOutput = true;
            psi.RedirectStandardError  = true;
            psi.UseShellExecute        = false;
            psi.CreateNoWindow         = true;

            var ps = new Process();

            ps.StartInfo = psi;
            ps.Start();

            fctGSTATOutput.AppendText(ps.StandardOutput.ReadToEnd());
            fctGSTATOutput.AppendText(ps.StandardError.ReadToEnd());

            ps.WaitForExit();
            ps.Close();

            fctGSTATOutput.AppendText("END of statistics");
        }
예제 #3
0
        private void hsCreateDatas_Click(object sender, EventArgs e)
        {
            var rpt = new ReportDesignClass
            {
                Datafile   = txtXMLDataFileNew.Text,
                Schemafile = txtXSDSchemaFileNew.Text,
                Reportfile = cbReportFile.Text
            };

            bool createFiles = true;

            if (File.Exists(rpt.Datafile) || File.Exists(rpt.Schemafile))
            {
                object[] param = { rpt.Datafile, rpt.Schemafile, Environment.NewLine };

                createFiles =

                    (SEMessageBox.ShowMDIDialog(FbXpertMainForm.Instance(), "FileExistsCaption", "ReportDataFilesExists",
                                                SEMessageBoxButtons.NoYes, SEMessageBoxIcon.Exclamation, null, param) == SEDialogResult.Yes);
            }

            if (createFiles)
            {
                foreach (ListViewItem lvi in lvCreateStatements.Items)
                {
                    if (!lvi.Checked)
                    {
                        continue;
                    }
                    rpt.DataObjects.Add(lvi.Tag as ReportSqlCommands);
                }
                rpt.CreateReportDatas(_dbReg);
            }
            rpt.EditDesignFp(report1);
        }
예제 #4
0
        private void DoGFIX()
        {
            FileInfo fi = new FileInfo($@"{_dbReg.GetFirebirdBinaryPath()}\gfix.exe");

            if (!fi.Exists)
            {
                object[] p = { fi.FullName, Environment.NewLine };
                SEMessageBox.ShowMDIDialog(FbXpertMainForm.Instance(), "FileNotExistsCaption", "FileNotExists", FormStartPosition.CenterScreen, SEMessageBoxButtons.OK, SEMessageBoxIcon.Exclamation, null, p);
                return;
            }

            fctGFIXOutput.Clear();
            string args = txtGFIXParameters.Text.Replace("****", _dbReg.Password);
            var    psi  = new ProcessStartInfo($@"{_dbReg.GetFirebirdBinaryPath()}\gfix.exe", args);

            psi.RedirectStandardOutput = true;
            psi.RedirectStandardError  = true;
            psi.UseShellExecute        = false;
            psi.CreateNoWindow         = true;
            fctGFIXOutput.AppendText($@"Starting of GFIX{Environment.NewLine}");
            var ps = new Process();

            ps.StartInfo = psi;
            ps.Start();
            ps.WaitForExit();

            fctGFIXOutput.AppendText(ps.StandardOutput.ReadToEnd());
            fctGFIXOutput.AppendText(ps.StandardError.ReadToEnd());

            ps.Close();
            fctGFIXOutput.AppendText($@"{Environment.NewLine}End of GFIX{Environment.NewLine}");
        }
예제 #5
0
        private void hsDesignEdit_Click_1(object sender, EventArgs e)
        {
            if (DataFilesExisting && !string.IsNullOrEmpty(cbReportFile.Text) && File.Exists(cbReportFile.Text))
            {
                var rpt = report1; // new FastReport.Report();
                rpt.Load(cbReportFile.Text);
                //rpt.FileName = txtREPORTFILE.Text;
                var dorg = new FastReport.Data.XmlDataConnection
                {
                    XmlFile          = cbXMLFile.Text,
                    XsdFile          = cbXSDFile.Text,
                    ConnectionString = string.Format("XsdFile={1};XmlFile={0}", cbXMLFile.Text, cbXSDFile.Text)
                };

                rpt.Dictionary.AddChild(dorg);
                rpt.Design(false);

                if (File.Exists(cbReportFile.Text))
                {
                    return;
                }
                rpt.Save(cbReportFile.Text);
            }
            else
            {
                object[] param = { cbReportFile.Text, Environment.NewLine };
                SEMessageBox.ShowMDIDialog(FbXpertMainForm.Instance(), "FileNotExistsCaption", "ReportFilesNotExists", SEMessageBoxButtons.OK, SEMessageBoxIcon.Exclamation, null, param);
            }
        }
예제 #6
0
        private void rbCreateDatabase_CheckedChanged(object sender, EventArgs e)
        {
            FileInfo fi = new FileInfo(txtRestoreDetinationDatabasePath.Text);

            if (fi.Exists && rbCreateDatabase.Checked)
            {
                SEMessageBox.ShowMDIDialog(FbXpertMainForm.Instance(), "DatabaseExceptionCaption", "DatabaseFileExistsNoCreate", SEMessageBoxButtons.OK, SEMessageBoxIcon.Exclamation, null, null);
                rbReplaceDatabase.Checked = true;
            }
        }
예제 #7
0
 private void hsRunStatement_ClickAsync(object sender, EventArgs e)
 {
     GetDataWorker.CancelGettingData();
     if (GetDataWorker.CancellingDone(5000))
     {
         DataSet dataSet1 = new DataSet();
         dataSet1.Clear();
         dgvResults.AutoGenerateColumns = true;
         DoCreateAlter(fctCREATEINSERTSQL.Lines, DBReg, _localNofity, Name);
         DbExplorerForm.Instance().DbExlorerNotify.Notify.RaiseInfo($@"{Name}->RunStatement", StaticVariablesClass.ReloadViews, TnSelected);
         return;
     }
     SEMessageBox.ShowMDIDialog(FbXpertMainForm.Instance(), "Cancelling getting Data failed", "Timeout for cancelling getting Data has arrived (5000 ms)");
 }
예제 #8
0
        public bool Deserialize(string FileName)
        {
            try
            {
                XmlSerializer serializer = new XmlSerializer(typeof(DatabaseDefinitions));
                Stream        fs         = new FileStream(FileName, FileMode.Open);
                var           reader     = new XmlTextReader(fs);
                var           PF         = (DatabaseDefinitions)serializer.Deserialize(reader);
                reader.Close();
                this.XMLName   = FileName;
                this.Databases = PF.Databases;
                //       this.OpenDatabaseCount = PF.OpenDatabaseCount;

                int pos = 1;
                foreach (DBRegistrationClass dbr in this.Databases)
                {
                    /*
                     * if (string.IsNullOrEmpty(dbr.InitialScriptingPath))     dbr.InitialScriptingPath = StaticVariablesClass.ScriptPath;
                     * if (string.IsNullOrEmpty(dbr.InitialReportPath))        dbr.InitialReportPath = StaticVariablesClass.ReportPath;
                     *
                     * if (string.IsNullOrEmpty(dbr.Collation))                dbr.Collation = StaticVariablesClass.Collation;
                     * if (string.IsNullOrEmpty(dbr.CommentEnd))               dbr.CommentEnd = StaticVariablesClass.CommentEnd;
                     * if (string.IsNullOrEmpty(dbr.CommentStart))             dbr.CommentStart = StaticVariablesClass.CommentStart;
                     * if (string.IsNullOrEmpty(dbr.InitialTerminator))        dbr.InitialTerminator = StaticVariablesClass.InitialTerminator;
                     * if (string.IsNullOrEmpty(dbr.AlternativeTerminator))    dbr.AlternativeTerminator = StaticVariablesClass.AlternativeTerminator;
                     * if (string.IsNullOrEmpty(dbr.SingleLineComment))        dbr.SingleLineComment = StaticVariablesClass.SingleLineComment;
                     */
                    dbr.Position = pos++;
                }

                if (PF.Reason == null)
                {
                    PF.Reason = "none";
                }
                this.Reason = PF.Reason;
                DataState   = EditStateClass.eDataState.Saved;
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                SEMessageBox.ShowMDIDialog(FbXpertMainForm.Instance(), "DatabaseConfigurationCaption", "CannotLoadDatabaseConfiguration", SEMessageBoxButtons.OK, SEMessageBoxIcon.Exclamation, null, new object[] { Environment.NewLine, FileName });
                return(false);
            }
            finally
            {
            }
            return(true);
        }
예제 #9
0
        private ExperienceInfo AddToLocalInfo(string keycode, string info)
        {
            ExperienceInfo data = null;

            try
            {
                var sh = new ExperienceInfoClass(_dblocalfile);
                data = sh.InsertExperienceInfo(keycode, info);
                sh.ExperienceInfoRefresh(dgvLocalExperienceInfo, txtLocalExperienceKeyCode.Text);
                sh.SortGrid(dgvLocalExperienceInfo, ExperienceInfoClass.SelColInx);
            }
            catch (Exception ex)
            {
                SEMessageBox.ShowMDIDialog(FbXpertMainForm.Instance(), "#Add to Info", $@"#{ex.Message}", FormStartPosition.CenterScreen, SEMessageBoxButtons.OK, SEMessageBoxIcon.Error);
            }
            return(data);
        }
예제 #10
0
        private bool UpdateToInfo()
        {
            bool ok = false;

            try
            {
                var sh = new ExperienceInfoClass(_dbfile);
                ok = sh.UpdateExperienceInfo(ExData);
                sh.ExperienceInfoRefresh(dgvExperienceInfo, txtExperienceKeyCode.Text);
                sh.SortGrid(dgvExperienceInfo, ExperienceInfoClass.SelColInx);
            }
            catch (Exception ex)
            {
                SEMessageBox.ShowMDIDialog(FbXpertMainForm.Instance(), "#Update Info", $@"#{ex.Message}", FormStartPosition.CenterScreen, SEMessageBoxButtons.OK, SEMessageBoxIcon.Error);
            }
            return(ok);
        }
        private void FormDesignSurfaceHosting_FormClosing(object sender, FormClosingEventArgs e)
        {
            //判断是否做了更改还没保存
            //但是需要注意,如果是直接关FormHostingContainer窗体,这些Hosting子窗体的FormClosing,FormClosed都不会触发
            if (_dirty)
            {
                this.Activate();

                SEMessageBox msgBox = new SEMessageBox(SEMessageBoxStyle.CmdLink);
                msgBox.Icon    = SEMessageBoxIcon.Question;
                msgBox.Caption = CommonLanguage.Current.MessageCaption_Notice;
                msgBox.Text    = String.Format(Language.Current.FormDesignSurfaceHosting_MessageIsSave, this.WindowEntity.Name);
                msgBox.AddButton(
                    new SEMessageBoxButton(CommonLanguage.Current.MessageBoxButton_Yes,
                                           Language.Current.FormDesignSurfaceHosting_MessageIsSave_YesButtonDescription)
                {
                    Result = DialogResult.Yes
                },
                    new SEMessageBoxButton(CommonLanguage.Current.MessageBoxButton_No,
                                           Language.Current.FormDesignSurfaceHosting_MessageIsSave_NoButtonDescription)
                {
                    Result = DialogResult.No
                },
                    new SEMessageBoxButton(CommonLanguage.Current.MessageBoxButton_Cancel)
                {
                    Result = DialogResult.Cancel, IsCancelButton = true
                }
                    );
                DialogResult result = msgBox.Show(this).Result;

                if (result == DialogResult.Yes)
                {
                    _windowComponentService.Save(this.WindowEntity);
                    _workbenchService.SetStatusMessage(Language.Current.StatusBarMessage_Saved);
                }
                else if (result == DialogResult.Cancel)
                {
                    e.Cancel = true;
                    return;
                }
            }
        }
예제 #12
0
        private void DoGBAK()
        {
            FileInfo fi = new FileInfo($@"{_dbReg.GetFirebirdBinaryPath()}\gbak.exe");

            if (!fi.Exists)
            {
                object[] p = { fi.FullName, Environment.NewLine };
                SEMessageBox.ShowMDIDialog(FbXpertMainForm.Instance(), "FileNotExistsCaption", "FileNotExists", FormStartPosition.CenterScreen, SEMessageBoxButtons.OK, SEMessageBoxIcon.Exclamation, null, p);
                return;
            }
            fctGBAKOutput.Clear();
            string args = txtGBAKParameters.Text.Replace("****", _dbReg.Password);
            var    psi  = new ProcessStartInfo($@"{_dbReg.GetFirebirdBinaryPath()}\gbak.exe", args);

            psi.RedirectStandardOutput = true;
            psi.RedirectStandardError  = true;
            psi.UseShellExecute        = false;
            psi.CreateNoWindow         = true;
            fctGBAKOutput.AppendText($@"Starting of GBAK{Environment.NewLine}");

            backgroundWorker1 = new BackgroundWorker();
            backgroundWorker1.WorkerReportsProgress = true;
            backgroundWorker1.ProgressChanged      += backgroundWorker1_ProgressChanged;
            backgroundWorker1.DoWork                    += backgroundWorker1_DoWork;
            backgroundWorker1.RunWorkerCompleted        += backgroundWorker1_RunWorkerCompleted;
            backgroundWorker1.WorkerSupportsCancellation = true;
            backgroundWorker1.RunWorkerAsync();

            ps                     = new Process();
            ps.StartInfo           = psi;
            ps.EnableRaisingEvents = true;
            ps.Exited             += Ps_Exited;

            ps.Start();
            sw = new StreamWatcher(ps.StandardOutput.BaseStream);
            sw.MessageAvailable       += Sw_MessageAvailable;
            sw_error                   = new StreamWatcher(ps.StandardError.BaseStream);
            sw_error.MessageAvailable += Sw_MessageAvailable;
        }
예제 #13
0
        private void hsCreateDatabase_Click(object sender, EventArgs e)
        {
            var fi = new FileInfo(txtLocation.Text);

            if (fi.Exists)
            {
                object[] param = { $@"{txtServer.Text}:{txtLocation.Text}", Environment.NewLine };
                if (SEMessageBox.ShowMDIDialog(FbXpertMainForm.Instance(), "DatabaseExistsCaption", "OverrideExistingDatabase", SEMessageBoxButtons.NoYes, SEMessageBoxIcon.Asterisk, null, param) == SEDialogResult.Yes)
                {
                    DBProviderSet.CreateDatabase(txtLocation.Text, txtServer.Text, txtUser.Text, txtPassword.Text,
                                                 StaticFunctionsClass.ToIntDef(txtPacketsize.Text, AppSettingsClass.Instance().DatabaseSettings.DefaultPacketSize), true, true);
                }
            }
            else
            {
                if (!fi.Directory.Exists)
                {
                    return;
                }
                DBProviderSet.CreateDatabase(txtLocation.Text, txtServer.Text, txtUser.Text, txtPassword.Text,
                                             StaticFunctionsClass.ToIntDef(txtPacketsize.Text, AppSettingsClass.Instance().DatabaseSettings.DefaultPacketSize), true, true);
            }
        }
예제 #14
0
        private void DoISQL()
        {
            //string args = $"-u SYSDBA -p masterkey -r -d {dbReg.DatabasePath}";
            FileInfo fi = new FileInfo($@"{_dbReg.FirebirdBinaryPath}\isql.exe");

            if (fi.Exists)
            {
                string arg = txtISQLPassword.Text.Replace("****", _dbReg.Password);
                var    psi = new ProcessStartInfo(fi.FullName, txtISQLParameters.Text);
                psi.UseShellExecute = false;

                var ps = new Process();
                ps.StartInfo = psi;
                ps.Start();

                ps.WaitForExit();
                ps.Close();
            }
            else
            {
                object[] p = { fi.FullName, Environment.NewLine };
                SEMessageBox.ShowMDIDialog(FbXpertMainForm.Instance(), "FileNotExistsCaption", "FileNotExists", FormStartPosition.CenterScreen, SEMessageBoxButtons.OK, SEMessageBoxIcon.Exclamation, null, p);
            }
        }
예제 #15
0
        private void hsDeleteLocalData_Click(object sender, EventArgs e)
        {
            int n = 0;

            foreach (DataGridViewRow dr in dgvLocalExperienceInfo.SelectedRows)
            {
                if (explocal.DeleteExperienceInfoEntry((int)dr.Cells[0].Value))
                {
                    n++;
                }
            }
            if (n > 0)
            {
                try
                {
                    explocal.ExperienceInfoRefresh(dgvLocalExperienceInfo, txtLocalExperienceKeyCode.Text);
                    explocal.SortGrid(dgvLocalExperienceInfo, ExperienceInfoClass.SelColInx);
                }
                catch (Exception ex)
                {
                    SEMessageBox.ShowMDIDialog(FbXpertMainForm.Instance(), "#Delete Info", $@"#{ex.Message}", FormStartPosition.CenterScreen, SEMessageBoxButtons.OK, SEMessageBoxIcon.Error);
                }
            }
        }
예제 #16
0
        public List <SQLCommandsReturnInfoClass> RunPreparedCommands()
        {
            //var sb = new StringBuilder();
            var riList = new List <SQLCommandsReturnInfoClass>();

            _parentNotifies?.AddToINFO($@"{StaticFunctionsClass.DateTimeNowStr()} Executing script");
            Application.DoEvents();



            // int i = 0;
            int nr = 0;


            FbConnection fbConn = null;
            FbCommand    fbCmd  = null;


            if (_drc.DatabasePath.Length > 0)
            {
                var connstr = ConnectionStrings.Instance().MakeConnectionString(_drc);
                try
                {
                    fbConn = new FbConnection(connstr);
                    fbConn.Open();
                }
                catch (Exception ex)
                {
                    object[] param = { ex.Message };
                    SEMessageBox.ShowMDIDialog(FbXpertMainForm.Instance(), "DatabaseExceptionCaption", "ErrorWhileOpeningDatabase", SEMessageBoxButtons.OK, SEMessageBoxIcon.Exclamation, null, param);
                }
            }

            if (fbConn.State == System.Data.ConnectionState.Open)
            {
                var  startDt   = DateTime.Now;
                bool DBRepoend = false;
                bool ReopenConnectionEachCommand = true;
                foreach (SCRIPTCommandClass command in this.Commands.Values)
                {
                    var ri = new SQLCommandsReturnInfoClass();
                    if (ReopenConnectionEachCommand)
                    {
                        if (fbCmd != null && fbCmd.Transaction != null)
                        {
                            ri.lastSQL = "ReopenDatabase";
                            try
                            {
                                fbCmd.Transaction.Commit();
                                fbCmd.Transaction = null;
                                ri.commandDone    = true;
                            }
                            catch (Exception ex)
                            {
                                ri.commandDone = false;
                                _parentNotifies?.AddToERROR(AppStaticFunctionsClass.GetFormattedError($@"Command error {fbCmd.CommandText}", ex));
                                if (fbCmd.Transaction != null)
                                {
                                    fbCmd.Transaction.Rollback();
                                    fbCmd.Transaction = null;
                                }
                            }
                        }
                        fbConn.Close();
                        fbConn.Open();
                        DBRepoend = fbConn.State == System.Data.ConnectionState.Open;
                    }

                    var actDt = DateTime.Now;
                    if ((actDt.Ticks - startDt.Ticks) > 30000000000)
                    {
                        _parentNotifies?.AddToINFO($@"{StaticFunctionsClass.DateTimeNowStr()} ...Executing script{nr.ToString()} commands done of {Commands.Count}.");
                    }


                    FbConnection usedCon = IsCreateDatabaseOrConnect(command.CommandText, fbConn);
                    if (usedCon != null)
                    {
                        //Create Databes oder connect
                        if (fbConn != null)
                        {
                            if (fbConn.State != System.Data.ConnectionState.Closed)
                            {
                                fbConn.Close();
                            }
                        }
                        fbConn = usedCon;
                        if (fbConn.State != System.Data.ConnectionState.Open)
                        {
                            fbConn.Open();
                        }
                        continue;
                    }

                    if (fbCmd == null || fbCmd.Transaction == null || DBRepoend)
                    {
                        fbCmd             = new FbCommand(command.CommandText, fbConn);
                        fbCmd.Transaction = fbConn.BeginTransaction();
                        DBRepoend         = false;
                    }
                    else
                    {
                        fbCmd.CommandText = command.CommandText;
                    }

                    var sw = new Stopwatch();
                    sw.Start();
                    ri.lastCommandType = command.CommandType;
                    ri.lastSQL         = command.CommandText;
                    try
                    {
                        if (command.CommandType == SQLCommandType.commit)
                        {
                            fbCmd.Transaction.Commit();

                            fbCmd.Transaction = null;
                        }
                        else
                        {
                            fbCmd.ExecuteNonQuery();
                        }
                        ri.commandDone = true;
                    }
                    catch (Exception ex)
                    {
                        ri.nErrors++;
                        ri.lastError   = ex.Message;
                        ri.commandDone = false;
                        _parentNotifies?.AddToERROR(AppStaticFunctionsClass.GetFormattedError($@"Command error {fbCmd.CommandText}", ex));
                        if (fbCmd.Transaction != null)
                        {
                            fbCmd.Transaction.Rollback();
                            fbCmd.Transaction = null;
                        }
                    }
                    sw.Stop();
                    command.Costs = sw.ElapsedMilliseconds;
                    _eventNotifies?.Notify.RaiseInfo($@"SQLScriptingClass.RunPreparedCommands()", Constants.CommandDone, command);
                    ri.costs = sw.ElapsedMilliseconds;
                    riList.Add(ri);
                    nr++;
                }

                if (fbCmd != null && fbCmd.Transaction != null)
                {
                    fbCmd.Transaction.Commit();

                    fbCmd.Transaction = null;
                }

                if (fbConn.State == System.Data.ConnectionState.Open)
                {
                    fbConn.Close();
                }
            }

            _parentNotifies?.AddToINFO($@"{StaticFunctionsClass.DateTimeNowStr()} Executing done {nr.ToString()} Commands");
            Application.DoEvents();
            return(riList);
        }
예제 #17
0
 private void testMToolStripMenuItem_Click(object sender, EventArgs e)
 {
     SEMessageBox.ShowMDIDialog(Instance(), "Error while opening database", "test", SEMessageBoxButtons.OK, SEMessageBoxIcon.Exclamation);
 }
예제 #18
0
        private void RunSingleCommand(SCRIPTCommandClass command)
        {
            _notifies?.AddToINFO($@"{StaticFunctionsClass.DateTimeNowStr()} Executing script command");
            Application.DoEvents();
            var _sql = new SQLScriptingClass(_actScriptingDbReg, "SCRIPT", _notifies);

            _sql.ClearCommands();
            FbConnection fbConn   = null;
            FbCommand    fbCmd    = null;
            bool         connOpen = false;

            if (_actScriptingDbReg.DatabasePath.Length > 0)
            {
                var connstr = ConnectionStrings.Instance().MakeConnectionString(_actScriptingDbReg);
                try
                {
                    fbConn = new FbConnection(connstr);
                    fbConn.Open();
                    connOpen = fbConn.State == System.Data.ConnectionState.Open;
                }
                catch (Exception ex)
                {
                    Enabled = false;
                    object[] param = { ex.Message };
                    SEMessageBox.ShowMDIDialog(FbXpertMainForm.Instance(), "DatabaseExceptionCaption", "ErrorWhileOpeningDatabase", SEMessageBoxButtons.OK, SEMessageBoxIcon.Exclamation, null, param);
                    Enabled = true;
                    BringToFront();
                }
            }

            if (connOpen)
            {
                var sw = new Stopwatch();
                sw.Start();
                FbConnection usedCon = IsCreateDatabaseOrConnect(command.CommandText, fbConn);
                if (usedCon != null)
                {
                    //Create database oder connect database
                    fbConn = usedCon;
                }
                else // kein create oder connect, voreingestellte connetion wird verwended
                {
                    fbCmd             = new FbCommand(command.CommandText, fbConn);
                    fbCmd.Transaction = fbConn.BeginTransaction();
                    try
                    {
                        if (command.CommandType == SQLCommandType.commit)
                        {
                            fbCmd.Transaction.Commit();
                        }
                        else
                        {
                            fbCmd.ExecuteNonQuery();
                            if (fbCmd.Transaction != null)
                            {
                                fbCmd.Transaction.Commit();
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        if (fbCmd.Transaction != null)
                        {
                            fbCmd.Transaction.Rollback();
                        }
                        fbCmd.Transaction = null;
                        _notifies?.AddToERROR(AppStaticFunctionsClass.GetFormattedError($@"Command error {fbCmd.CommandText}", ex));
                    }
                }
                if (connOpen)
                {
                    fbConn.Close();
                }
                sw.Stop();
                Cursor = Cursors.Default;
                _notifies?.AddToINFO($@"{StaticFunctionsClass.DateTimeNowStr()} Executing done in {sw} ms");
                Application.DoEvents();
            }
            else
            {
                _notifies?.AddToINFO($@"{StaticFunctionsClass.DateTimeNowStr()} Database {_actScriptingDbReg.Alias} not open ");
                Application.DoEvents();
            }
        }
예제 #19
0
        private void hsSaveSourceCodes_Click(object sender, EventArgs e)
        {
            if (!Directory.Exists(txtSourceCodePath.Text))
            {
                object[] p = { txtSourceCodePath.Text, Environment.NewLine };
                SEMessageBox.ShowMDIDialog(FbXpertMainForm.Instance(), "DirectoryNotExists", "DirectoryNotExistsParam", FormStartPosition.CenterScreen, SEMessageBoxButtons.OK, SEMessageBoxIcon.Exclamation, null, p);
                return;
            }
            var items = selDBObjects.CheckedItemDatas;

            pbExport.Minimum = 0;
            pbExport.Value   = 0;
            pbExport.Maximum = items.Count;
            if (ckDeleteOldSourceFiles.Checked)
            {
                string[] files = Directory.GetFiles(txtSourceCodePath.Text);
                foreach (string file in files)
                {
                    try
                    {
                        File.Delete($@"{file}");
                    }
                    catch //(Exception ex)
                    {
                    }
                }
            }
            var gsource = MakeGlobalCode();

            try
            {
                var fi = new FileInfo(txtSourceCodePath.Text + "\\DBGlobalFunctionsClass.cs");
                if (fi.Directory != null && fi.Directory.Exists)
                {
                    File.WriteAllText(txtSourceCodePath.Text + "\\DBGlobalFunctionsClass.cs", gsource);
                }
            }
            catch (Exception ex)
            {
                _localNotify?.AddToERROR(AppStaticFunctionsClass.GetFormattedError($@"hsSaveSourceCodes_Click", ex));
            }


            foreach (var itm in items)
            {
                var source = itm.Text.StartsWith("Cb") ? MakeCbSourceCode(itm.Object) : MakeSourceCode(itm.Object);

                try
                {
                    var fi = new FileInfo(txtSourceCodePath.Text + "\\" + itm.Text + "Class.cs");
                    if (fi.Directory != null && fi.Directory.Exists)
                    {
                        File.WriteAllText(txtSourceCodePath.Text + "\\" + itm.Text + "Class.cs", source);
                    }
                }
                catch (Exception ex)
                {
                    _localNotify?.AddToERROR(AppStaticFunctionsClass.GetFormattedError($@"hsSaveSourceCodes_Click", ex));
                }

                pbExport.Value++;
                gbExportProgress.Text = LanguageClass.Instance.GetString("PROGRESS") + $@" ({pbExport.Value}/{pbExport.Maximum})";
                Application.DoEvents();
            }
        }
예제 #20
0
        private void FBXpertMainForm_Load(object sender, EventArgs e)
        {
            //   LanguageClass.Instance.InitEmbedded(this,"FBXpert.Languages","Language","de");
            ProgramAttributes.Instance.Init(System.Reflection.Assembly.GetExecutingAssembly());
            LanguageClass.Instance.InitFile(this.GetType().Assembly, $@"{ApplicationPathClass.Instance.ApplicationPath}\Languages\", "Language", ".", "de");
            LanguageClass.Instance.OnRaiseLanguageExceptionHandler += FbXpertMainForm_OnRaiseLanguageExceptionHandler;
            LanguageClass.Instance.ChangeLanguage(LanguageConsts.Deutsch);
            string test = LanguageClass.Instance.GetString("test");


            this.Text = $@"{ProgramAttributes.Instance.GetAppName()} V {ProgramAttributes.Instance.GetAppVersion()}";

            Application.DoEvents();

            FBXInfo.Instance.MdiParent = this;
            FBXInfo.Instance.Show();

            _dbe = DbExplorerForm.Instance(this);

            string pf = $@"{AppSettingsClass.Instance.PathSettings.DatabasesConfigPath}\{AppSettingsClass.Instance.PathSettings.DatabaseConfigFile}";
            bool   dz = DatabaseDefinitions.Instance.Deserialize(pf);

            SetLastLoadedDefinition(pf);
            if (dz)
            {
                Application.DoEvents();
                NotifiesClass.Instance.InfoGranularity = eMessageGranularity.normal;
                _dbe.SetCaption();
                _dbe.Show();
                _dbe.Enabled = false;
                _dbe.MakeDatabaseTree(false);
                int n = DatabaseDefinitions.Instance.CountToOpen();
                if (n > AppSettingsClass.Instance.DatabaseSettings.OpenDatabaseCount)
                {
                    object[] p = { n, Environment.NewLine };
                    if (SEMessageBox.ShowMDIDialog(FbXpertMainForm.Instance(), "OpenDatabases", "DoYouWantOpenDatabases", FormStartPosition.CenterScreen,
                                                   SEMessageBoxButtons.NoYes, SEMessageBoxIcon.Exclamation, null, p) == SEDialogResult.Yes)
                    {
                        _dbe.OpenActiveDatabases();
                    }
                    else
                    {
                        DatabaseDefinitions.Instance.DataState = EditStateClass.eDataState.UnSaved;
                        DatabaseDefinitions.Instance.MarkDatabasesActiv(false);
                    }
                }
                else
                {
                    _dbe.OpenActiveDatabases();
                }
                if (NotificationsForm.Instance().Visible)
                {
                    NotificationsForm.Instance().Close();
                }
                NotifiesClass.Instance.InfoGranularity = eMessageGranularity.few;
            }
            DbExplorerForm.Instance().Enabled = true;
            LanguageClass.Instance.ChangeLanguage(LanguageConsts.Deutsch);
            SEHotSpot.Controller.Instance.NewKeyboardHooks(this);
            DbExplorerForm.Instance().Select();
        }