[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