SELECT COM SUB TABELAS
05/09/2016
0
Pois bem no meu projeto estou montando um forme para consultas no qual estou utilizando quatro formulários (tabelas) com os respectivos nomes: CADASTRO_REFERENCIAS (essa e a janela principal), CADASTRO_COLECOES , CADASTRO_VESTUARIO e CADASTRO_CLIENTES.
http://prntscr.com/celzl3 (print CADASTRO_REFERENCIAS)
http://prntscr.com/celzrr (print CADASTRO_COLECOES) ----------- FK de CADASTRO_REFERENCIAS
http://prntscr.com/celzxk (CADASTRO_VESTUARIO) ---------------- FK de CADASTRO_REFERENCIAS
http://prntscr.com/cem23d (CADASTRO_CLIENTES) ---------------- FK de CADASTRO_REFERENCIAS
dentro do DataModule (tabelaReferencias criei três field's: codColecoes, codTipoVestuario e codClientes (pra aparecer os nomes no dbgrid invés do Código)
dentro do meu formulário tenho um RarioGroup com 05 itens (no meu exemplo estou usando o item [03] com o nome Coleção.
tenho um DBGrid, um Edit (com o nome de EditBusca), um IBQuery com o nome de (ibAuxConsulta) e um DS com o nome (dsFormeConsulltas)
um botao com o seguinte comando no evento onClick
procedure TfConsRef.BotaoProcurarClick(Sender: TObject);
begin
B_Retornar.Enabled:=False;
ibAuxConsulta.Close;
ibAuxConsulta.SQL.Clear;
ibAuxConsulta.SQL.Add('Select REFFULL, REFDATACRIACAO, IDCLIENTES, IDCOLECOES, IDTECIDO1 from cadastro_Referencias');
case RG_Opcoes.ItemIndex Of
3:
begin //BUSCA POR COLECAO
ibAuxConsulta.SQL.Clear;
ibAuxConsulta.SQL.Add('select * from cadastro_referencias ref ');
ibAuxConsulta.SQL.Add('join cadastro_vestuario vest ');
ibAuxConsulta.SQL.Add('on ref.idtipovestuario = vest.idvestuario ');
ibAuxConsulta.SQL.Add('join cadastro_colecoes colec ');
ibAuxConsulta.SQL.Add('on ref.idcolecoes = colec.idcolecao ');
ibAuxConsulta.SQL.Add('and colec.colnome like :pcolecoes ');
ibAuxConsulta.ParamByName('pcolecoes').Value:= EditBusca.Text+'%';
ibAuxConsulta.Open;
ate ai tudo bem ta fazendo a busca, direitinho dento do IBExpert, mais quando eu coloco o programa pra rodar e mando fazer a busca do que eu quero ele nao ta mandando os campos como e pra ser como na imagem abaixo:
http://prntscr.com/cem8gn
os campos codTipoVestuario, codClientes e codColecoes nao estao aparecendo (essas são as field's criadas).
O que tem de errado com meu código?
Rubens Pena
Post mais votado
07/09/2016
begin //BUSCA POR COLECAO ibAuxConsulta.SQL.Clear;// entrando na query e limpando ibAuxConsulta.SQL.Add('select * from cadastro_referencias ref '); ibAuxConsulta.SQL.Add('join cadastro_vestuario vest on (ref.idtipovestuario = vest.idvestuario) '); ibAuxConsulta.SQL.Add('join cadastro_colecoes colec on (ref.idcolecoes = colec.idcolecao) '); ibAuxConsulta.SQL.Add('where (colec.colnome like :pcolecoes) -- where (lower(colec.colnome) like lower(:pcolecoes))) '); ibAuxConsulta.ParamByName('pcolecoes').Value:= EditBusca.Text+'%'; ibAuxConsulta.Open; end;
http://prntscr.com/cf9pxw
fica dando o seguinte erro: Unknown SQL Data type (0) quando coloco o programa pra rodar e clico no botao de consulta
Rubens Pena
Mais Posts
07/09/2016
Raylan Zibel
select * from cadastro_referencias ref join cadastro_vestuario vest on (ref.idtipovestuario = vest.idvestuario) join cadastro_colecoes colec on (ref.idcolecoes = colec.idcolecao) where (colec.colnome like :pcolecoes) -- where (lower(colec.colnome) like lower(:pcolecoes))
07/09/2016
Raylan Zibel
ibAuxConsulta.SQL.Add('where (colec.colnome like :pcolecoes) '); ibAuxConsulta.ParamByName('pcolecoes').AsString := EditBusca.Text+'%';
09/09/2016
Rubens Pena
3: begin //BUSCA POR COLECAO ibAuxConsulta.SQL.Clear;// entrando na query e limpando ibAuxConsulta.SQL.Add(' select REFFULL as Referencia, REFDATACRIACAO as Data, VEST.VESNOME as Vestuario, CLINOME as Cliente, REFANO as Ano, COLEC.COLNOME as Colecao, TEC.TECNOME as Tecido1, REFDESCRICAO as Descricao '); ibAuxConsulta.SQL.Add(' from cadastro_referencias ref '); ibAuxConsulta.SQL.Add(' join cadastro_vestuario vest on ref.idtipovestuario = vest.idvestuario '); ibAuxConsulta.SQL.Add(' join cadastro_colecoes colec on ref.idcolecoes = colec.idcolecao '); ibAuxConsulta.SQL.Add(' join cadastro_clientes clie on ref.idclientes = clie.idcliente '); ibAuxConsulta.SQL.Add(' join cadastro_tecidos tec on ref.idtecido1 = tec.idtecido '); if EditBusca.Text <> '' then begin ibAuxConsulta.SQL.Add('and colec.colnome like :pcolecoes '); ibAuxConsulta.ParamByName('pcolecoes').Value:= EditBusca.Text+'%'; end; ibAuxConsulta.Open;
09/09/2016
Rubens Pena
http://prntscr.com/cg9836
Clique aqui para fazer login e interagir na Comunidade :)