Пример #1
0
        //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));
        }
Пример #2
0
        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);
            }
        }