Firebird - Mestre/Detalhe

1. Firebird - Mestre/Detalhe

Aprendiz - CE
aprendiz_ce

(usa Debian)

Enviado em 05/06/2009 - 10:22h

Como faço para que durante a inserção de um novo registro na tabela DETALHE (itens de pedido) seja gravado automaticamente o valor da coluna de relacionamento (numero do pedido) com da tabela MESTRE (pedido). Penso em algo como uma STORED PROCEDURE/TRIGGER. Dei uma olha no EMPLOYEE.GDB que vem com o Firebird/Interbase aonde tem uma rotina como a que necessito, mas não consequi entender como a mesma funciona.

Será que alguem poderia me dar uma ajuda sobre isso?

Obrigado a todos e aguardo retorno.

Abraço.


  


2. Re: Firebird - Mestre/Detalhe

Evaldo Avelar Marques
evaldoavelar

(usa Ubuntu)

Enviado em 15/07/2009 - 09:48h

ola,

Acho que você poderia usar uma procedure para isso, passando o numero da tabela MESTRE (pedido) e os dados da tabela DETALHE (itens de pedido) , como por exemplo:

Assumindo que você tenha uma tabela itens pedidos com os seguintes campos:

ID_PEDIDO INTEGER, //id da tabela MESTRE (pedido)
COD_PRODUTO INTEGER, //codigo do item produto
DES_PRDUTO VARCHAR(200), //descricao do produto
PRES_PRODUTO FLOAT) //preço do produto

Você poderia criar uma procedure ADD_ITEM_PEDIDO que faria a adição automaticamente:

CREATE PROCEDURE ADD_ITEM_PEDIDO (
ID_PEDIDO INTEGER,
COD_PRODUTO INTEGER,
DES_PRDUTO VARCHAR(200),
PRES_PRODUTO FLOAT)
AS
begin
insert into pedido(ID_PEDIDO,COD_PRODUTO,DES_PRDUTO,PRES_PRODUTO ) values (:ID_PEDIDO,:COD_PRODUTO,:DES_PRDUTO,:PRES_PRODUTO);
suspend;
end


E poderia executa-la assim toda vez que for inserir um item para o pedido:

execute procedure ADD_ITEM_PEDIDO(id_pedido,cod_produto,des_produto,pre_produto);

A mesma lógica você poderia usar para excluir um pedido, utilizando uma trigger;


Ajudei em alguma coisa?


3. Re: Firebird - Mestre/Detalhe

Aprendiz - CE
aprendiz_ce

(usa Debian)

Enviado em 15/07/2009 - 09:58h

Ajudou sim!

Estou achando que com o seu exemplo eu posso resolver o meu problema.

Obrigado pela sua atenção.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts