Exemplo n.º 1
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);
            }
        }