[firebase-br] Duvida Delphi x Firebird
Escovador de Bits
escovadordebits em gmail.com
Ter Fev 3 11:02:54 -03 2009
Bom dia Rodrigo.
Grande Rodrigo, no DBGrid só aparecem os registros retornados pelo
respectivo DateSet, que em 99% dos casos foi gerado a partir de um SELECT.
Para fazer essa funcionalidade que você necessita, não seria no DBGrid.
Você teria duas alternativas:
1 - Quando registrar um novo item vendido, copiar o VLPRODUTO da tabela
PRODUTOS no momento da inclusão na tabela ITENS, ou seja, algo desse tipo:
INSERT INTO ITENS I (NRVENDA, NRITEM, CDPRODUTO, QTVENDA, VLPRODUTO)
VALUES(Número-da-venda, Número-do-item, Código-do-produto,
Quantidade-vendida, (SELECT P.VLPRODUTO FROM PRODUTOS P WHERE
P.CDPRODUTO = I.CDPRODUTO));
2 - Se você não está gerando os comandos SQLs dinamicamente, e está
apenas utilizando os próprios métodos do DataSet de itens para incluir o
novo registro de item vendido, então você poderia criar uma TRIGGER na
tabela ITENS no momento BEFORE INSERT para fazer esse SELECT na tabela
PRODUTOS, pelo código do produto, e copiando o valor atual do produto no
respectivo campo VLPRODUTO da tabela ITENS, ou seja, independente do
valor que você informe no campo VLPRODUTO da tabela ITENS, na inclusão,
essa trigger colocaria o valor atual do produto nesse campo.
Esse código abaixo é apenas um exemplo de como seria essa trigger:
SET TERM ^ ;
CREATE OR REPLACE TRIGGER TRG_ITENS_BI FOR ITENS BEFORE INSERT AS
BEGIN
SELECT VLPRODUTO
FROM PRODUTOS
WHERE CDPRODUTO = NEW.CDPRODUTO
INTO NEW.VLPRODUTO;
END ^
SET TERM ; ^
Espero ter ajudado mais que atrapalhado.
Rodrigo Beraldo Modica escreveu:
> Seguinte
>
>
> Tenho 2 tabelas Produtos(CDPRODUTO, DCPRODUTO, VLPRODUTO) e Itens(NRVENDA,
> NRITEM, CDPRODUTO, QTVENDA, VLPRODUTO) , quando registro a venda de
> determinado Item como faço para que o dbgrid puxe o VLPRODUTO da tabela
> produto e grave na tabela ITENS.
> Consegui fazer visualizar, mas não esta gravando no BD
>
> Tô usando Delphi com Firebird
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
Mais detalhes sobre a lista de discussão lista