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()); }
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); }
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); }
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(""); }