[firebase-br] OFF - Select com IBQuery pra experiente...

jcs.canan jcs.canan em uol.com.br
Sex Dez 3 09:01:31 -03 2004


Amigos da lista

Estou desenvolvendo meu primeiro sistema com Delphi 7 X 
Firebird 1.5 e os componentes da palheta Interbase. Agora 
estou escrevendo a rotina de inclusão de pedidos e itens de 
pedidos e estou com dificuldades. Vejam abaixo parte do 
código que não está funcionando:

If not DataModule1.TAB_ITENS_PEDIDOS.Active then
    DataModule1.TAB_ITENS_PEDIDOS.Open;
 DataModule1.TAB_ITENS_PEDIDOS.Insert;
 DataModule1.TAB_ITENS_PEDIDOS.FieldByName
('COD_PEDIDO').Value := StrToInt(Label11.Caption);
 DataModule1.TAB_ITENS_PEDIDOS.FieldByName
('COD_PRODUTO').Value:= DataModule1.TAB_PRODUTOS.FieldByName
('COD_PRO').Value;
 DataModule1.TAB_ITENS_PEDIDOS.FieldByName('QTDADE').Value := 
StrToInt(Edit4.Text);
 DataModule1.TAB_ITENS_PEDIDOS.FieldByName
('PRECO_UNIT').Value := DataModule1.TAB_PRODUTOS.FieldByName
('PRECO_VENDA_PRO').Value;
 DataModule1.TAB_ITENS_PEDIDOS.Post;
 DataModule1.TAB_ITENS_PEDIDOS.Transaction.CommitRetaining;
 DataModule1.IBTransaction1.CommitRetaining;
 SB_Grava_pedido.Enabled := True;

With DataModule1.IBQuery1 do begin
    Active := False;
    Sql.Clear;
    Temp := 'Select IP.COD_PEDIDO, IP.COD_PRODUTO, 
PR.NOME_PRO, IP.QTDADE, ';
    Temp := temp + 'IP.PRECO_UNIT, IP.QTDADE * IP.PRECO_UNIT 
AS TOTAL ';
    Temp := temp + 'FROM TAB_PEDIDOS_VENDAS  PE ';
    Temp := temp + 'join TAB_ITENS_PEDIDO IP on PE.COD_PEDIDO 
= IP.COD_PEDIDO ';
    Temp := temp + 'join TAB_PRODUTOS PR on IP.COD_PRODUTO = 
PR.COD_PRO ';
    Temp := temp + 'WHERE IP.COD_PEDIDO = ';
    Temp := temp + IntToStr(N_PEDIDO);
    Sql.Add(temp);
    Active := True;
End;


A inclusão através do DataModule1.TAB_ITENS_PEDIDOS.Post 
ocorre normalmente, mas a seleção do item do pedido para ser 
mostrado através da IBQuery1 não ocorre. Na verdade, a 
IBQuery sempre apresenta ‘zero’ registros selecionados.

Quando vou alterar os itens de pedidos e já existe algum item 
cadastrado o código acima funciona corretamente apartir do 
segundo item cadastrado, ou seja, não carraga o primeiro 
item. Por ex.:
Pedido: 30
Itens do pedido 30: 1, 3, 5
Vou fazer uma alteração e incluir mais os itens 2, 4 e 6;
A Ibquery só apresenta os itens 1,3,4,5 e 6. O item 2 que é o 
primeiro a ser cadastrado nesta alteração a IBQuery não 
carrega seus dados. Será o que devo melhorar no código para 
que funcione corretamente? 

Se algum dos amigos mais experientes puderem dar umas dicas e 
criticar o código, desde já agradeço.


[]’s

Canan
www.canalvivo.com.br
Montanha/ES 

 
__________________________________________________________________________
Acabe com aquelas janelinhas que pulam na sua tela.
AntiPop-up UOL - É grátis!
http://antipopup.uol.com.br/






Mais detalhes sobre a lista de discussão lista