Problema com relacionamentos

12/12/2003

1

Estou usando firebird
Criei duas tabelas uma para clientes e outra para produtos.

create table vendas
(
clientecodigo integer not null,
nome varchar(20),
telefone varchar(15),
primary key(prodcliente)
);

create table produtos
(
prodcodigo integer not null,
clientecodigo integer not null,
nome varchar(20),
qtd integer,
preco float,
primary key (prodcodigo)
);

Relacionei com o seguinte comando.
Alter table produtos add foreign key (clientecodigo)
references venda(clientecodigo).

Criei os generators com
Create generator cli_gen;
Create generator prod_gen;


Coloquei os componentes do interbase, tudo direitinho.
Coloquei dois dbgrid e dois dbnavigator.

Está quase tudo funcionando direitinho. Quando clico em algum ítem do dbgrid CLIENTES motra no dbgrid PRODUTOS os produtos deste cliente. Tudo certo.

Meu problema é o seguinte:
Quando vou cadastrar algum ítem no dbgrid PRODUTOS. Clico no botão adicionar e o generator gera o código para o produto, mas tenho que digitar o código referente ao cliente. No caso o clientecodigo.

Como faço para quando eu mandar adicionar um registro no Produto já seja acrescentado o código do cliente, já que está relacionado?

Desde já agradeço.


Responder

Posts

12/12/2003

Biscoitorfa

no evento onnewrecord da tabela de itensvenda que será um mestre detalhe voce inclui do codigo do cliente e o código do produto

pega o dataset corrente do cliente e o dataset corrente doproduto!

Acho que sua modelagem está errada. Voce tem que ter uma tabela de cliente, uma tabela de pedido do cliente, uma tabela com os itens do pedido do cliente e uma tabela com os produtos!!!

No evento onnewrecord do intem_produto voce pega o cogido do pedido corrente do datasetpedido e o codigo do produto corrente no dataset produto e grava a quantidade desse item!

Ou seja um cliente pode ter 0 ou N pedidos e 1 pedido pode ter 1 ou N produtos


Espero que entenda...


Responder