Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 4
            [id] => 561988
            [titulo] => SELECT COM SUB TABELAS
            [dataCadastro] => DateTime Object
                (
                    [date] => 2016-09-07 12:58:41
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 383412
            [status] => A
            [isExample] => 
            [NomeUsuario] => RUBENS PENA
            [Apelido] => 
            [Foto] => 
            [Conteudo] => [code]
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;
[/code]

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 ) )

SELECT COM SUB TABELAS

Rubens Pena
   - 05 set 2016

Boa noite pessoal, mais uma vez venho ate vocês com mas uma duvida.
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?

Post mais votado

Rubens Pena
   - 07 set 2016

#Código

        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
   - 06 set 2016

continuo travado, algum se prontifica em me ajudar?

Raylan
|
MVP
Pontos: 690
    07 set 2016

Tente assim e veja se retorna certo
#Código

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))

Raylan
|
MVP
Pontos: 690
    07 set 2016

#Código


ibAuxConsulta.SQL.Add('where (colec.colnome like :pcolecoes)    ');
ibAuxConsulta.ParamByName('pcolecoes').AsString :=  EditBusca.Text+'%';

Rubens Pena
   - 09 set 2016

Boa noite, depois de seguir as orientações de Raylan e ver alguns estudos em videos na net consegui criar a sql pro meu problema, agora ta dando certo.

#Código

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;

Rubens Pena
   - 09 set 2016

So que a estrutura da dbgrid não ficou como eu quero, as colunas ficaram com muito espaço. Gostaria de saber qual seria os comandos para deixar as colunas com a largura por mim estabelecida.

http://prntscr.com/cg9836