/// <summary> /// Преобразование кода MSQL в SQL. /// </summary> /// <param name="MSQL"></param> /// <returns>Код SQL</returns> public static string Parse(string MSQL) { //Инициализация парсера if (!ParserData.IsInitial) { string sql = ParserData.GetSQLInitial(); var DS = new System.Data.DataSet(); string ErrorText; const bool ErrorShow = true; if (!sys.SelectDS(DirectionQuery.Remote, sql, out DS, out ErrorText, ErrorShow)) { return(""); } ParserData.ParserInitialFromDS(DS); } var parser = new Parser(); return(parser.Parse(MSQL, "Sys")); }
///Парсинг запроса. private string Parse(string MSQL, bool Test) { string sql; if (!ParserData.IsInitial) { sql = ParserData.GetSQLInitial(); var DS = new System.Data.DataSet(); string ErrorText; const bool ErrorShow = true; if (!sys.SelectDS(DirectionQuery.Remote, sql, out DS, out ErrorText, ErrorShow)) { return(""); } ParserData.ParserInitialFromDS(DS); } //Для тестирования. Показываем исходные таблицы. if (!Test) { dgvEntity.DataSource = ParserData.DTArEntity; dgvAttrParent.DataSource = ParserData.DTArAttrParent; } parser = new Parser(); sql = parser.ParseTest(MSQL, cbPsevdominEntity.Text, "Sys"); //Результат SQL. if (!Test) { txTime.Text = parser.ParseTimeSQL.ToString(); //Для тестирования. Время выполнения процедур парсера. //Выходные данные. //Таблицы для парсинга, полученные при работе парсера. System.Data.DataTable DTMain; //Главная таблица, в которой весь запрос. System.Data.DataTable DTTable; //Список таблиц, которые используются в выходном запросе SQL. System.Data.DataTable DTEntity; //Список сущностей, которые используются в исходном запросе MSQL. System.Data.DataTable DTUserStr; //Список строк пользователя в исходном запросе MSQL. System.Data.DataTable DTAttrTable; System.Data.DataTable DTStateDate; parser.ReturnTestTable(out DTMain, out DTEntity, out DTTable, out DTUserStr, out DTAttrTable, out DTStateDate); //Выходные данные. dgvString.DataSource = DTMain; dgvListEntity.DataSource = DTEntity; dgvListTable.DataSource = DTTable; dgvUserString.DataSource = DTUserStr; dgvAttrTable.DataSource = DTAttrTable; dgvStateDate.DataSource = DTStateDate; dgvString.Columns[0].Width = 43; dgvString.Columns[1].Width = 111; dgvString.Columns[2].Width = 50; dgvString.Columns[3].Width = 55; dgvString.Columns[4].Width = 58; dgvString.Columns[5].Width = 50; dgvString.Columns[6].Width = 57; dgvString.Columns[7].Width = 101; dgvString.Columns[8].Width = 73; dgvString.Columns[9].Width = 100; dgvString.Columns[10].Width = 64; dgvString.Columns[11].Width = 50; dgvString.Columns[12].Width = 144; dgvString.Columns[13].Width = 118; dgvString.Columns[14].Width = 59; dgvString.Columns[15].Width = 52; dgvString.Columns[16].Width = 58; dgvString.Columns[17].Width = 57; dgvString.Columns[18].Width = 71; dgvString.Columns[19].Width = 72; dgvString.Columns[20].Width = 76; dgvString.Columns[21].Width = 65; } return(sql); }