예제 #1
0
        public static string BuscaStringSQL(TRegistro_Cad_Consulta Cad_Consulta, Boolean criarwhere)
        {
            //BUSCA AS TABELAS
            TList_Cad_Amarracoes listaTabelas = TCN_Cad_Amarracoes.Busca(0, Cad_Consulta.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, Cad_Consulta.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, Cad_Consulta.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, Cad_Consulta.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, Cad_Consulta.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());
        }
예제 #2
0
        public override int buscarRegistros()
        {
            if (tcCentral.SelectedIndex == 0)
            {
                TList_Cad_Consulta lista = TCN_Cad_Consulta.Busca(0, CamadaDados.TDataQuery.getPubVariavel(TInfo.pub, "LOGIN"), NM_Consulta.Text, 0);
                if (lista != null)
                {
                    if (lista.Count > 0)
                    {
                        BS_Consulta.DataSource = lista;
                    }
                    else
                    {
                        BS_Consulta.Clear();
                    }

                    return(lista.Count);
                }
            }
            else if (tcCentral.SelectedIndex == 1)
            {
                TList_Cad_Usuario_X_Tabela lista = TCN_Cad_Usuario_X_Tabela.Busca(CamadaDados.TDataQuery.getPubVariavel(TInfo.pub, "LOGIN"), "", "");
                if (lista != null)
                {
                    if (lista.Count > 0)
                    {
                        treeTabelas.Nodes.Clear();
                        for (int i = 0; i < lista.Count; i++)
                        {
                            TreeNode no = new TreeNode(lista[i].NM_Tabela);
                            treeTabelas.Nodes.AddRange(new TreeNode[] { no });
                        }
                    }
                    else
                    {
                        treeTabelas.Nodes.Clear();
                    }

                    return(lista.Count);
                }
            }
            else if (tcCentral.SelectedIndex == 2)
            {
                TList_Cad_Campo_Amarracao lista = TCN_Cad_Campo_Amarracao.Busca(0, (BS_Consulta.Current as TRegistro_Cad_Consulta).ID_Consulta, 0, 0);
                if (lista != null)
                {
                    if (lista.Count > 0)
                    {
                        BS_CampoAmarracao.DataSource = lista;
                    }
                    else
                    {
                        BS_CampoAmarracao.Clear();
                    }

                    BS_CampoAmarracao.ResetBindings(true);
                    return(lista.Count);
                }
            }
            else if (tcCentral.SelectedIndex == 4)
            {
                TList_Cad_Filtro lista = TCN_Cad_Filtro.Busca(0, (BS_Consulta.Current as TRegistro_Cad_Consulta).ID_Consulta, "");
                if (lista != null)
                {
                    if (lista.Count > 0)
                    {
                        BS_Filtro.DataSource = lista;
                    }
                    else
                    {
                        BS_Filtro.Clear();
                    }

                    BS_Filtro.ResetBindings(true);
                    return(lista.Count);
                }
            }
            else if (tcCentral.SelectedIndex == 5)
            {
                TList_Cad_Ordenacao lista = TCN_Cad_Ordenacao.Busca(0, (BS_Consulta.Current as TRegistro_Cad_Consulta).ID_Consulta, "");
                if (lista != null)
                {
                    if (lista.Count > 0)
                    {
                        treeCampoOrdenado.Nodes.Clear();
                        for (int i = 0; i < lista.Count; i++)
                        {
                            TreeNode no = new TreeNode(lista[i].NM_Campo + " (" + (lista[i].TP_Ordenacao.Equals("A") ? "ASC" : "DESC") + ")");
                            no.Name = lista[i].ID_Ordenacao.ToString();
                            treeCampoOrdenado.Nodes.AddRange(new TreeNode[] { no });
                        }
                    }
                    else
                    {
                        treeCampoOrdenado.Nodes.Clear();
                    }
                    return(lista.Count);
                }
            }

            return(0);
        }
예제 #3
0
        public TList_Cad_Filtro Select(TpBusca[] vBusca, Int32 vTop, string vNM_Campo)
        {
            TList_Cad_Filtro lista         = new TList_Cad_Filtro();
            SqlDataReader    reader        = null;
            bool             podeFecharBco = false;

            if (Banco_Dados == null)
            {
                this.CriarBanco_Dados(false);
                podeFecharBco = true;
            }
            try
            {
                if (vNM_Campo == "")
                {
                    reader = ExecutarBusca(SqlCodeBusca(vBusca, vTop, ""));
                }
                else
                {
                    reader = ExecutarBusca(SqlCodeBusca(vBusca, vTop, vNM_Campo));
                }

                while (reader.Read())
                {
                    TRegistro_Cad_Filtro reg = new TRegistro_Cad_Filtro();

                    if (!reader.IsDBNull(reader.GetOrdinal("ID_Filtro")))
                    {
                        reg.ID_Filtro = reader.GetDecimal(reader.GetOrdinal("ID_Filtro"));
                    }
                    if (!reader.IsDBNull(reader.GetOrdinal("ID_Consulta")))
                    {
                        reg.ID_Consulta = reader.GetString(reader.GetOrdinal("ID_Consulta"));
                    }
                    if (!reader.IsDBNull(reader.GetOrdinal("ID_Operador")))
                    {
                        reg.ID_Operador = reader.GetDecimal(reader.GetOrdinal("ID_Operador"));
                    }
                    if (!reader.IsDBNull(reader.GetOrdinal("NM_Campo")))
                    {
                        reg.NM_Campo = reader.GetString(reader.GetOrdinal("NM_Campo"));
                    }
                    if (!reader.IsDBNull(reader.GetOrdinal("Alias_Campo")))
                    {
                        reg.Alias_Campo = reader.GetString(reader.GetOrdinal("Alias_Campo"));
                    }
                    if (!reader.IsDBNull(reader.GetOrdinal("ST_Ligacao")))
                    {
                        reg.ST_Ligacao = reader.GetString(reader.GetOrdinal("ST_Ligacao"));
                    }
                    if (!reader.IsDBNull(reader.GetOrdinal("ID_ParamClasse")))
                    {
                        reg.ID_ParamClasse = reader.GetDecimal(reader.GetOrdinal("ID_ParamClasse"));
                    }

                    lista.Add(reg);
                }
            }
            finally
            {
                reader.Close();
                reader.Dispose();
                if (podeFecharBco)
                {
                    this.deletarBanco_Dados();
                }
            };
            return(lista);
        }
예제 #4
0
        public override string gravarRegistro()
        {
            if (tcCentral.SelectedIndex == 0)
            {
                //GRAVA O REGISTRO
                if (NM_Consulta.Text.Trim().Equals(""))
                {
                    MessageBox.Show("Atenção, é necessário informar o nome da consulta!");
                    NM_Consulta.Focus();
                }
                else
                {
                    //CRIA OS DADOS DA CONSULTA
                    (BS_Consulta.Current as TRegistro_Cad_Consulta).Login = CamadaDados.TDataQuery.getPubVariavel(TInfo.pub, "LOGIN");
                    //(BS_Consulta.Current as TRegistro_Cad_Consulta).CD_Clifor = CD_Clifor;

                    string retorno = TCN_Cad_Consulta.GravaConsulta((BS_Consulta.Current as TRegistro_Cad_Consulta), null);

                    if (retorno != "")
                    {
                        (BS_Consulta.Current as TRegistro_Cad_Consulta).ID_Consulta = CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_ID_Consulta");
                        BS_Consulta.ResetBindings(true);
                        return(retorno);
                    }
                    else
                    {
                        tcCentral.SelectedIndex = 0;
                        MessageBox.Show("Não foi possível lançar a consulta tente novamente!");
                    }
                }
            }
            else if (tcCentral.SelectedIndex == 1)
            {
                //ADICIONA AS TABElAS
                if (treeTabelas.SelectedNode != null)
                {
                    TreeNode node = treeTabelas.SelectedNode;

                    //INSTANCIA O REGISTRO
                    TRegistro_Cad_Amarracoes Cad_Amarracoes = new TRegistro_Cad_Amarracoes();
                    Cad_Amarracoes.ID_Consulta  = (BS_Consulta.Current as TRegistro_Cad_Consulta).ID_Consulta;
                    Cad_Amarracoes.NM_Tabela    = node.Text;
                    Cad_Amarracoes.ST_Principal = "N";

                    if (cb_TabelaPrincipal.Checked)
                    {
                        TCN_Cad_Amarracoes.AlterarTodosStatus(Cad_Amarracoes);
                        Cad_Amarracoes.ST_Principal = "S";
                    }

                    string retorno = TCN_Cad_Amarracoes.GravaAmarracoes(Cad_Amarracoes);

                    if (retorno != "")
                    {
                        CD_Amarracao = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_ID_AMARRACOES"));
                    }


                    buscarTabelasAdicionadas();
                }
            }
            else if (tcCentral.SelectedIndex == 2)
            {
                if (cb_TipoAmarracao.SelectedItem == null)
                {
                    MessageBox.Show("Atenção, é necessário selecionar um tipo de amarração!");
                    cb_TipoAmarracao.Focus();
                }
                else
                if (treeBase.SelectedNode != null && treeEstrangeira.SelectedNode != null)
                {
                    if (treeBase.SelectedNode.Parent != null && treeEstrangeira.SelectedNode.Parent != null)
                    {
                        //GRAVA OS DADOS DA AMARRAÇÃO
                        if (pDadosAddCampoAmarracao.validarCampoObrigatorio())
                        {
                            TRegistro_Cad_Amarracoes Cad_Amarracoes = new TRegistro_Cad_Amarracoes();
                            Cad_Amarracoes.ID_Consulta   = (BS_Consulta.Current as TRegistro_Cad_Consulta).ID_Consulta;
                            Cad_Amarracoes.ID_Amarracoes = Convert.ToDecimal(treeEstrangeira.SelectedNode.Parent.Name);
                            Cad_Amarracoes.NM_Tabela     = treeEstrangeira.SelectedNode.Parent.Text;
                            string[] ID_Tipo_Amarracao = cb_TipoAmarracao.SelectedItem.ToString().Trim().Split(new char[] { '-' });
                            Cad_Amarracoes.ID_Tipo_Amarracao = Convert.ToDecimal(ID_Tipo_Amarracao[0].Trim());

                            string retorno = TCN_Cad_Amarracoes.GravaAmarracoes(Cad_Amarracoes);

                            if (retorno != "")
                            {
                                CD_Amarracao = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_ID_AMARRACOES"));
                            }

                            if (CD_Amarracao > 0)
                            {
                                TRegistro_Cad_Campo_Amarracao Cad_Campo_Amarracao = new TRegistro_Cad_Campo_Amarracao();
                                Cad_Campo_Amarracao.ID_Amarracoes         = CD_Amarracao;
                                Cad_Campo_Amarracao.Campo_Base            = treeBase.SelectedNode.Text;
                                Cad_Campo_Amarracao.Campo_Estrangeiro     = treeEstrangeira.SelectedNode.Text;
                                Cad_Campo_Amarracao.NM_Tabela_Base        = treeBase.SelectedNode.Parent.Text;
                                Cad_Campo_Amarracao.NM_Tabela_Estrangeiro = treeEstrangeira.SelectedNode.Parent.Text;

                                TCN_Cad_Campo_Amarracao.GravaCampoAmarracao(Cad_Campo_Amarracao);
                            }

                            buscarRegistros();
                        }
                    }
                }
            }
            else if (tcCentral.SelectedIndex == 4)
            {
                if (treeCampo.SelectedNode != null)
                {
                    if (treeCampo.SelectedNode.Text.IndexOf("TB_") != -1)
                    {
                        MessageBox.Show("Por favor, seleciona um campo!");
                    }
                    else
                    {
                        //GRAVA O CAMPO
                        if (cb_OperadorFiltro.SelectedItem == null)
                        {
                            MessageBox.Show("Por favor, selecione um operador!");
                            cb_OperadorFiltro.Focus();
                        }
                        else if (ID_ParamClasse.Text == "")
                        {
                            MessageBox.Show("Por favor, selecione um parâmetro!");
                            ID_ParamClasse.Focus();
                        }
                        else
                        {
                            TRegistro_Cad_Filtro Cad_Filtro = new TRegistro_Cad_Filtro();
                            Cad_Filtro.ID_Consulta = (BS_Consulta.Current as TRegistro_Cad_Consulta).ID_Consulta;
                            Cad_Filtro.NM_Campo    = treeCampo.SelectedNode.Text;
                            string[] ID_Operador = cb_OperadorFiltro.SelectedItem.ToString().Trim().Split(new char[] { '-' });
                            Cad_Filtro.ID_Operador    = Convert.ToDecimal(ID_Operador[0].Trim());
                            Cad_Filtro.ID_ParamClasse = Convert.ToDecimal(ID_ParamClasse.Text);
                            Cad_Filtro.Alias_Campo    = treeCampo.SelectedNode.Parent.Text;
                            Cad_Filtro.ST_Ligacao     = "A";

                            //VERIFICA SE A ALGUM DADOS LANÇADO
                            TList_Cad_Filtro lista = TCN_Cad_Filtro.Busca(0, (BS_Consulta.Current as TRegistro_Cad_Consulta).ID_Consulta, "");

                            if (lista != null)
                            {
                                if (lista.Count > 0)
                                {
                                    Cad_Filtro.ST_Ligacao = "O";
                                }
                            }

                            string retorno = TCN_Cad_Filtro.GravaFiltro(Cad_Filtro);

                            buscarRegistros();
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Por favor, selecione um campo!");
                }
            }
            else if (tcCentral.SelectedIndex == 5)
            {
                //ADICIONA A ORDENAÇÃO
                if (treeOrdenacaoCampo.SelectedNode.Parent != null)
                {
                    string Order = "A";
                    if (rb_Desc.Checked)
                    {
                        Order = "D";
                    }

                    TRegistro_Cad_Ordenacao Cad_Ordenacao = new TRegistro_Cad_Ordenacao();
                    Cad_Ordenacao.TP_Ordenacao = Order;
                    Cad_Ordenacao.ID_Consulta  = (BS_Consulta.Current as TRegistro_Cad_Consulta).ID_Consulta;
                    Cad_Ordenacao.NM_Campo     = treeOrdenacaoCampo.SelectedNode.Text;
                    Cad_Ordenacao.Alias_Campo  = treeOrdenacaoCampo.SelectedNode.Parent.Text;

                    TCN_Cad_Ordenacao.GravaOrdenacao(Cad_Ordenacao);

                    buscarRegistros();
                }
            }

            return("");
        }