Query com duas tabelas.......

Delphi

10/09/2006

Oi pessoal.
Adcionei um IbQuery no meu programa que teria que selecionar dua tabelas, (Tab_pedido e Itens_pedido). Criei o seguinte código:
With Dmdados.IbQ_Pedido Do
       Begin
        Close;
        Sql.Clear;
        Sql.Add(´Select * From Tab_pedido,Itens_Pedido´);
        Sql.Add(´Where Numero_pedido= :ParamNumero´);
        ParamByName(´ParamNumero´).AsString:=Edit1.Text;
        open;
       end;


Seleciona pelo numero do pedido e me traz os iten relacionados a este pedido, sendo que apenas me mostra o primeiro registro, é como se só estivesse lendo apenas o inicio das duas tabelas.
Não sei como proceder neste caso, alguém pode me ajudar?
Agradeço desde já a todos.
erivan.


Peninha

Peninha

Curtidas 0

Respostas

Acacio

Acacio

10/09/2006

Tens que fazer a ligação das duas tabelas, existem várias maneiras de fazer essa ligação, mas acho o mais fácil assim;

Select * From Tab_pedido ped,
join Itens_Pedido ite on ped.Numero_pedido = ite.Numero_pedido
Where Numero_pedido= :ParamNumero


ped é o apelido que dei para a tabela Tab_pedido para facilitar,
e ite foi o apelido que dei para a tabela Itens_Pedido. Uma observação se
colocares o * ele vai trazer todos os campos das duas tabelas e a performance fica um pouco pior, por isso ponha somente os campos que precisa trazer na pesquisa.


GOSTEI 0
Peninha

Peninha

10/09/2006

Acacio obrigado pela força e me desculpe o abuso.
Sera que vc poderia montar em forma de código, pois estou com dificuldade na montagem do código.
Se não for pedir muito.
Obrigado


GOSTEI 0
Peninha

Peninha

10/09/2006

Acacio tentei desta forma:
 With Dmdados.IbQ_Pedido Do
       Begin
        Close;
        Sql.Clear;
        Sql.Add(´Select * From Tab_Pedido p  Join Itens_pedido I On P.Num_pedido = I.Numero_Pedido´);
        Sql.Add(´Where Numero_Pedido= :ParamNumero´);
        ParamByname(´ParamNumero´).AsString:=Edit1.Text;
        open;
       end;

Não gera nenhum erro, no entanto não me retorna nenhum resultado.
Erivan.


GOSTEI 0
Acacio

Acacio

10/09/2006

A princípio está certo, se não está trazendo nada tens que fazer testes, por exemplo tire a condição e verifique se ainda não traz nada. Se não traz nada provavelmente o problema é que não tais lincando a base certa.


GOSTEI 0
POSTAR