//public static string BuscaStringSQL(TRegistro_SqlEditor SqlEditor, Boolean criarwhere) //{ // //BUSCA AS TABELAS // TList_Cad_Amarracoes listaTabelas = TCN_Cad_Amarracoes.Busca(0, SqlEditor.ID_Consulta); // string SQLConsulta = ""; // StringBuilder SQL = new StringBuilder(); // if (listaTabelas.Count > 0) // { // SQL.AppendLine("SELECT "); // try // { // //BUSCA OS CAMPOS // TList_Cad_Campo listaCampo = TCN_Cad_Campo.Busca(0, SqlEditor.ID_Consulta, ""); // string virgula = ", "; // SQLConsulta = ""; // for (int i = 0; i < listaCampo.Count; i++) // { // SQLConsulta += listaCampo[i].Alias_Campo + "." + listaCampo[i].NM_Campo + virgula; // if ((i + 2) == listaCampo.Count) // { // virgula = ""; // } // } // if (listaCampo.Count > 0) // { // if (SQLConsulta.Trim() != "") // { // SQL.AppendLine(SQLConsulta); // SQLConsulta = ""; // } // } // else // { // SQL.AppendLine(" 1 "); // } // //BUSCA A TABELA PRINCIPAL E SEPARA OS CAMPOS CERTOS // string from = ""; // string join = ""; // for (int i = 0; i < listaTabelas.Count; i++) // { // if (listaTabelas[i].ST_Principal.Trim() == "S") // { // from = "FROM " + listaTabelas[i].NM_Tabela; // } // else // { // TpBusca[] vBusca = new TpBusca[0]; // Array.Resize(ref vBusca, vBusca.Length + 1); // vBusca[vBusca.Length - 1].vNM_Campo = "a.id_tipo_amarracao"; // vBusca[vBusca.Length - 1].vOperador = "="; // vBusca[vBusca.Length - 1].vVL_Busca = "'" + listaTabelas[i].ID_Tipo_Amarracao + "'"; // string tipoAmarracao = new TCD_Cad_TipoAmarracao().BuscarEscalar(vBusca, "a.sigla_amarracao").ToString(); // if (tipoAmarracao != "") // { // TList_Cad_Campo_Amarracao listaCampoTabela = TCN_Cad_Campo_Amarracao.Busca(0, SqlEditor.ID_Consulta, 0, listaTabelas[i].ID_Amarracoes); // if (listaCampoTabela.Count > 0) // { // join += tipoAmarracao + " " + listaTabelas[i].NM_Tabela + " on "; // } // //BUSCA OS CAMPOS DOS JOINS // string and = ""; // for (int x = 0; x < listaCampoTabela.Count; x++) // { // if ((x + 1) < listaCampoTabela.Count) // { // and = " AND "; // } // else // { // and = ""; // } // join += listaCampoTabela[x].NM_Tabela_Base + "." + listaCampoTabela[x].Campo_Base; // join += " = "; // join += listaCampoTabela[x].NM_Tabela_Estrangeiro + "." + listaCampoTabela[x].Campo_Estrangeiro + " " + and; // } // } // } // } // //ADD OS JOIN PARA O SELECT // SQLConsulta += from + " " + join; // if (SQLConsulta.Trim() != "") // { // SQL.AppendLine(SQLConsulta); // SQLConsulta = ""; // } // if (criarwhere) // { // //BUSCA OS FILTRO WHERE // TList_Cad_Filtro listaFiltro = TCN_Cad_Filtro.Busca(0, SqlEditor.ID_Consulta, ""); // string cond = "WHERE "; // for (int i = 0; i < listaFiltro.Count; i++) // { // if (listaFiltro[i].ID_Operador > 0) // { // TpBusca[] vBuscaOperador = new TpBusca[0]; // Array.Resize(ref vBuscaOperador, vBuscaOperador.Length + 1); // vBuscaOperador[vBuscaOperador.Length - 1].vNM_Campo = "a.id_operador"; // vBuscaOperador[vBuscaOperador.Length - 1].vOperador = "="; // vBuscaOperador[vBuscaOperador.Length - 1].vVL_Busca = "'" + listaFiltro[i].ID_Operador + "'"; // string operador = new TCD_Cad_Operador().BuscarEscalar(vBuscaOperador, "a.sigla_operador").ToString(); // if (operador != "") // { // TList_Cad_ParamClasse listaParam = TCN_Cad_ParamClasse.Buscar(listaFiltro[i].ID_ParamClasse, "", "", "", 0, null); // if (operador.Trim().ToUpper() == "LIKE") // { // SQLConsulta += cond + " (" + listaFiltro[i].Alias_Campo + "." + listaFiltro[i].NM_Campo + operador + "'%" + listaParam[0].NM_CampoFormat +"%')"; // } // else // { // SQLConsulta += cond + " (" + listaFiltro[i].Alias_Campo + "." + listaFiltro[i].NM_Campo + operador + "'" + listaParam[0].NM_CampoFormat + "')"; // } // if ((i + 1) < listaFiltro.Count) // { // if (listaFiltro[(i + 1)].ST_Ligacao == "A") // { // cond = " AND "; // } // else // { // cond = " AND "; // } // } // else // { // cond = " AND "; // } // } // } // } // if (SQLConsulta.Trim() != "") // { // SQL.AppendLine(SQLConsulta); // SQLConsulta = ""; // } // } // //BUSCA OS CAMPOS DE ORDENAÇÃO // TList_Cad_Ordenacao listaOrdenacao = TCN_Cad_Ordenacao.Busca(0, SqlEditor.ID_Consulta, ""); // if (listaOrdenacao.Count > 0) // { // SQLConsulta += "ORDER BY "; // } // for (int i = 0; i < listaOrdenacao.Count; i++) // { // SQLConsulta += listaOrdenacao[i].Alias_Campo + "." + listaOrdenacao[i].NM_Campo + " "; // SQLConsulta += listaOrdenacao[i].TP_Ordenacao.Equals("A") ? "ASC" : "DESC"; // SQLConsulta += ""; // } // if (SQLConsulta.Trim() != "") // { // SQL.AppendLine(SQLConsulta); // SQLConsulta = ""; // } // } // catch (Exception erro) // { // throw new Exception(erro.Message); // } // } // return SQL.ToString(); //} public static DataTable BuscarSQL(string SQL) { TCD_SqlEditor cd = new TCD_SqlEditor(); return(cd.BuscarSQL(SQL)); }
private void tsBB_Executar_Click(object sender, EventArgs e) { string login = Utils.Parametros.pubLogin; if (DS_SQL.ToString().ToUpper().Contains("UPDATE") || DS_SQL.ToString().ToUpper().Contains("INSERT") || DS_SQL.ToString().ToUpper().Contains("DROP") || DS_SQL.ToString().ToUpper().Contains("DELETE") || DS_SQL.ToString().ToUpper().Contains("ALTER")) { if (!CamadaNegocio.Diversos.TCN_Usuario_RegraEspecial.ValidaRegra(Utils.Parametros.pubLogin, "PERMITIR UPDATE", null)) { using (Proc_Commoditties.TFLanSessaoPDV fSessao = new Proc_Commoditties.TFLanSessaoPDV()) { fSessao.Mensagem = "Usuário sem permissão de update"; if (fSessao.ShowDialog() == DialogResult.OK) { if (!CamadaNegocio.Diversos.TCN_Usuario_RegraEspecial.ValidaRegra(fSessao.Usuario, "PERMITIR UPDATE", null)) { MessageBox.Show("Usuário não tem permissão!"); return; } else { login = fSessao.Usuario; } } else { return; } } } } List <string> lista = new List <string>(); System.IO.StringReader rd = new System.IO.StringReader(DS_SQL.Text); string linha = string.Empty; while (linha != null) { linha = rd.ReadLine(); if (linha != null) { if (linha.Contains("'{@")) { string[] var = linha.Split(new char[] { '{' }); for (int i = 0; var.Length > i; i++) { if (var[i].Contains("@") && var[i].Contains("}")) { if (!lista.Exists(p => p.Equals(var[i]))) { lista.Add(var[i].Split(new char[] { '}' })[0]); } } } } } ; } //if (lista.Count > 0) //{ // using (TFParametrosConsulta fParam = new TFParametrosConsulta()) // { // //Criar fonte de dados // fParam.lista = lista; // if (fParam.ShowDialog() == DialogResult.OK) // if (fParam.data != null) // { // string Sql = DS_SQL.Text; // for (int i = 0; fParam.data.Rows.Count > i; i++) // { // if (!string.IsNullOrEmpty(ConsultaSql)) // Sql = ConsultaSql; // string param = "{" + fParam.data.Rows[i]["param"] + "}"; // string valor = fParam.data.Rows[i]["valor"].ToString(); // ConsultaSql = Sql.Replace(param, valor); // } // } // } //} //else ConsultaSql = DS_SQL.Text; // if (VerificaAcessoSyntax() && VerificaTabelasPermitidas()) // { try { adicionaMSGErro("Aguarde... executanto a consulta SQL!"); if (grid_Resultado.Columns.Count > 0) { grid_Resultado.Columns.Clear(); } if (grid_Resultado.Rows.Count > 0) { grid_Resultado.Rows.Clear(); } if (DS_SQL.Text != "") { TCD_SqlEditor cd = new TCD_SqlEditor(); TRegistro_SqlEditor sed = new TRegistro_SqlEditor(); sed.Login = login; sed.DS_Consulta = ConsultaSql; cd.Grava(sed); DataTable dataTable = cd.BuscarSQL(ConsultaSql.Replace("\n", " ").Replace("\t", " ")); if (DS_SQL.ToString().ToUpper().Contains("SELECT")) { for (int i = 0; i < dataTable.Columns.Count; i++) { DataGridViewTextBoxColumn coluna = new DataGridViewTextBoxColumn(); coluna.Name = dataTable.Columns[i].ColumnName; coluna.HeaderText = dataTable.Columns[i].ColumnName; coluna.DataPropertyName = dataTable.Columns[i].ColumnName; coluna.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells; grid_Resultado.Columns.Add(coluna); } BS_Resultado.DataSource = dataTable; BS_Resultado.ResetBindings(true); grid_Resultado.Visible = true; tabPageResult.Controls.Clear(); tabPageResult.Controls.Add(grid_Resultado); } else { adicionaMSGErro("Registros afetados: " + cd.tamanho.ToString()); } } else { adicionaMSGErro("Atenção há erros na SQL!"); } } catch (Exception erro) { adicionaMSGErro("ERRO: " + erro.Message); } }