Ejemplo n.º 1
0
        ///Список SQL запросов.
        private void BtnSQL1Click(object sender, EventArgs e)
        {
            //Добавить.
            if (sender == btnSQL1)
            {
                string FileName = "";
                if (!sys.InputValue("Название запроса", "Введите название запроса:", SizeMode.Small, ValueType.String, ref FileName))
                {
                    return;
                }
                ListBox1.Items.Add(FileName);
                ListSQL.Text           = "";
                ListBox1.SelectedIndex = ListBox1.Items.Count - 1;
            }

            //Удалить.
            if (sender == btnSQL2)
            {
                string FileName = ListBox1.Items[ListBox1.SelectedIndex].ToString();
                string ErrorMes = "";
                if (!FBAFile.FileDelete(FBAPath.PathSettings + FileName + ".txt", out ErrorMes, true))
                {
                    return;
                }
                FBAFile.FileDelete(FBAPath.PathSettings + FileName + "_Result.txt", out ErrorMes, true);
                ListBox1.Items.RemoveAt(ListBox1.SelectedIndex);
            }

            //Сохранить.
            if (sender == btnSQL3)
            {
                if (ListBox1.SelectedIndex == -1)
                {
                    sys.SM("Выберите запрос!");
                    return;
                }
                string FileName = ListBox1.Items[ListBox1.SelectedIndex].ToString();
                FBAFile.FileWriteTextObject(ListSQL, FBAPath.PathSettings + FileName + ".txt", false);
                FBAFile.FileWriteTextObject(ListResult, FBAPath.PathSettings + FileName + "_Result.txt", false);
            }

            //Использовать.
            if (sender == btnSQL4)
            {
                textQuery.Text            = ListSQL.Text;
                tabControl1.SelectedIndex = 1;
            }

            //Тест только парсинг.
            if (sender == btnSQL5)
            {
                RunTest(false, "Test");
            }

            //Тест парсинг и выполнение.
            if (sender == btnSQL6)
            {
                RunTest(true, "Test");
            }

            //Тест парсинг и выполнение.
            if (sender == btnSQL9)
            {
                RunTest(true, "WORK");
            }

            //Переименование.
            if (sender == btnSQL7)
            {
                string     fileName    = ListBox1.Items[ListBox1.SelectedIndex].ToString();
                string     fileSource1 = FBAPath.PathSettings + fileName + ".txt";
                string     fileSource2 = FBAPath.PathSettings + fileName + "_Result.txt";
                const bool showMes     = true;
                string     errorMes    = "";
                if (!sys.InputValue("Новое название запроса", "Введите новое название запроса:", SizeMode.Small, ValueType.String, ref fileName))
                {
                    return;
                }
                string fileDestination1 = FBAPath.PathSettings + fileName + ".txt";
                string fileDestination2 = FBAPath.PathSettings + fileName + "_Result.txt";
                //Переименование файла. FileExists = (Overwrite, Skip, Ask)
                if (File.Exists(fileSource1))
                {
                    if (!FBAFile.FileRename(fileSource1, fileDestination1, FileOverwrite.Ask, showMes, out errorMes))
                    {
                        return;
                    }
                }
                if (File.Exists(fileSource2))
                {
                    if (!FBAFile.FileRename(fileSource2, fileDestination2, FileOverwrite.Ask, showMes, out errorMes))
                    {
                        return;
                    }
                }
                sys.SM("Запрос переименован!", MessageType.Information);
            }

            //Кнопка "Обновить список MSQL запросов".
            if (sender == btnSQL8)
            {
                RefreshFiles();
            }
        }
Ejemplo n.º 2
0
 ///Сохранить текст MSSQL запроса.
 private void SaveMSQLText()
 {
     FBAFile.FileWriteTextObject(textQuery, FBAPath.PathSettings + "MSSQL.txt", false);
 }
Ejemplo n.º 3
0
        ///Событие. Кнопки редактора запросов
        private void TbSQL1Click(object sender, EventArgs e)
        {
            string indexstr = tabControlSQL1.SelectedTab.Tag.ToString();
            //FastColoredTextBox f;
            //var textSQL11 = tabControSQL.Controls.Find("sdF").
            var textSQL = (FastColoredTextBox)tabControlSQL1.Controls.Find("textSQL" + indexstr, true).First();
            var dgvSQL  = (DataGridViewFBA)tabControlSQL1.Controls.Find("dgvSQL" + indexstr, true).First(); //textSQL1
            var fastColoredTextBoxSQL = (FastColoredTextBoxNS.FastColoredTextBox)tabControlSQL1.Controls.Find("fastColoredTextBoxSQL" + indexstr, true).First();

            if ((sender == textSQL) && (textSQL.Text == ""))
            {
                textSQL.AppendText("SELECT * FROM fbaEnterHist");
            }

            //Выполнить запрос.
            if (sender == tbSQL1)
            {
                var    tbSQLResult = (TextBox)tabControlSQL1.Controls.Find("tbSQLResult" + indexstr, true).First();
                string SQL         = textSQL.SelectedText;
                if (SQL == "")
                {
                    SQL = textSQL.Text;
                }

                string ExecTextSQL = SQL;
                if (cb_MSQL_SQL.Checked)
                {
                    ExecTextSQL = sys.Parse(SQL);
                }
                DateTime DateTime1 = DateTime.Now;
                sys.RefreshGrid(GetDirection(), dgvSQL, ExecTextSQL);
                tbSQLResult.Text = " Rows: " + dgvSQL.RowCount + "    Execute time: " + sys.GetTimeDiff(DateTime1, DateTime.Now);
            }

            //Распарсить запрос.
            if (sender == tbSQL7)
            {
                var    tbSQLResult = (TextBox)tabControlSQL1.Controls.Find("tbSQLResult" + indexstr, true).First();
                string SQL         = textSQL.SelectedText;
                if (SQL == "")
                {
                    SQL = textSQL.Text;
                }

                string   ExecTextSQL = SQL;
                DateTime DateTime1   = DateTime.Now;
                if (cb_MSQL_SQL.Checked)
                {
                    ExecTextSQL = sys.Parse(SQL);
                }
                fastColoredTextBoxSQL.Text = ExecTextSQL;
                tbSQLResult.Text           = " Execute time: " + sys.GetTimeDiff(DateTime1, DateTime.Now);
            }

            //Очистка редактора запросов
            if (sender == tbSQL2)
            {
                textSQL.Clear();
            }

            //Export to Excel
            if (sender == cm4)
            {
                dgvSQL.ExportToExcel();
            }

            //Новая вкладка.
            //В процедуру передаются компоненты с перовой вкладки (которая никогда не удаляется)
            //чтобы на их примере сделать новую вкладку.
            //Можно было бы и без них - но тогда пришлось бы каждый раз в коде изменять свойства компонентов.
            if (sender == tbSQL3)
            {
                TabControlPageAdd(tabControlSQL1, splitContainerSQL1, textSQL, pnlResultSQL1, tbSQLResult1, dgvSQL1, cmGrid, ref TabIndexSQL);
            }

            //Удалить вкладку
            if ((sender == tbSQL4) && (tabControlSQL1.TabPages.Count > 1))
            {
                tabControlSQL1.SelectedTab.Dispose();
            }

            //Открыть из CSV.
            if (sender == tbSQL5)
            {
                string       FileName         = "";
                string       ErrorMes         = "";
                const bool   ErrorShow        = true;
                const string InitialDirectory = "";
                if (!FBAFile.OpenFileName("", "CSV Files|*.csv|All Files|*.*", InitialDirectory, ref FileName))
                {
                    return;
                }
                System.Data.DataTable DT;
                sys.CSVToDataTable(out DT, FileName, out ErrorMes, ErrorShow);
                dgvSQL.DataSource = DT;
            }

            //Сохранить текст запроса.
            if (sender == tbSQL6)
            {
                string FileName = "";
                if (!FBAFile.SaveFileName("Save SQL", "SQL Files|*.sql|All Files|*.*", "", 0, ref FileName))
                {
                    return;
                }
                FBAFile.FileWriteTextObject(textSQL, FileName, true);
            }

            //Copy to Remote Database
            if (sender == cm1)
            {
                string SQL;
                string ServerTableName = "MyTableName";
                //if (Var.con.serverTypeRemote == ServerType.MSSQL) ServerTableName = "dbo.MyTableName";
                if (!sys.InputValue("Имя таблицы на сервере", "Имя таблицы", SizeMode.Small, ValueType.String, ref ServerTableName))
                {
                    return;
                }
                var DT = (DataTable)dgvSQL.DataSource;
                if (Var.con.serverTypeRemote == ServerType.MSSQL)
                {
                    //Способ Var.con.MSSQLCopyTableToServer работает быстрее для MSSQL, чем sys.GetTextTableToDatabase.
                    Var.con.MSSQLCopyTableToServer(DT, ServerTableName);
                }
                if (Var.con.serverTypeRemote == ServerType.Postgre)
                {
                    SQL = sys.GetTextTableToDatabase(Var.con.serverTypeRemote, ServerTableName, DT, true);
                    sys.Exec(DirectionQuery.Remote, SQL);
                }
                sys.SM("Таблица " + ServerTableName + " загружена на сервер " + Var.con.serverType, MessageType.Information);
            }

            //Copy to Local Database
            if (sender == cm2)
            {
                string ServerTableName = "MyTableName";
                if (!sys.InputValue("Имя таблицы на сервере", "Имя таблицы", SizeMode.Small, ValueType.String, ref ServerTableName))
                {
                    return;
                }
                var    DT  = (DataTable)dgvSQL.DataSource;
                string SQL = sys.GetTextTableToDatabase(ServerType.SQLite, ServerTableName, DT, true);
                Var.conLite.Exec(SQL);
                sys.SM("Таблица " + ServerTableName + " сохранена в локальной базе данных SQLite", MessageType.Information);
            }

            //Export to CSV
            if (sender == cm3)
            {
                string       FileName         = "Table_" + sys.GetDate4FileName(DateTime.Now) + ".csv";
                var          DT               = (DataTable)dgvSQL.DataSource;
                const string InitialDirectory = "";
                if (!FBAFile.SaveFileName("Import object", "XLS Files|*.xls|All Files|*.*", InitialDirectory, 0, ref FileName))
                {
                    return;
                }
                if (!sys.DataTableToCSV(DT, FileName, true))
                {
                    return;
                }
                //sys.SM("Таблица сохранена в файл: " + FileName, MessageType.Information);
                //sys.FileRunSimple(FileName);
                FBAFile.FileRunNotebook(FileName);
            }

            //Export to XLS
            if (sender == cm4)
            {
                var DT = (DataTable)dgvSQL.DataSource;
                if (!sys.DataTableToExcel(DT))
                {
                    return;
                }
                sys.SM("Таблица выгружена в файл XLS", MessageType.Information);
            }
        }