Fernando Bossini escreveu:
> Opa!
>
> Desculpem estar perguntando aqui no forum, mas alguém trabalha com 
> Zeoslib e Delphi?
> Como fazer mestre/detalhe?
>
> Se insiro no banco os dados manualmente, eles aparecem no programa de 
> forma correta, ou seja, o cabeçalho com seus respectivos itens... mas 
> quando tento fazer uma inserção no sistema ele somente grava o mestre 
> e NAO os detalhe. Percebi que quando dou um applyupdates no Mestre, o 
> Detail é tipo limpado, apagado...
>
> Connect: TZConnection;
> Connect.TransactionIsolationLevel := tireadcommitted;
>
> Master: TZQuery;
> Master.CachedUpdates := True;
> Master.SQL := 'select * from master';
>
> dsMestre: TDataSource;
> dsMestre.Dataset := Master;
>
> Detail: TZQuery;
> Detail.CachedUpdates := True;
> Detail.SQL := 'select * from detail where codi_master = :codi_master';
> Detail.DataSource := dsMestre;
>
> PROCESSO QUE ESTOU REALIZANDO:
>
> Master.Insert;
> --->Preenchimento dos campos do master...
> Detail.Insert;
> ---->Preenchimento dos campos do detail...
> Detail.Post;
> Detail.Insert;
> ---->Preenchimento dos campos do detail...
> Detail.Post;
> Detail.Insert;
> ---->Preenchimento dos campos do detail...
> Detail.Post;
> Master.Post;
> Master.ApplyUpdates;
> Detail.ApplyUpdates;
>
>
> ME AJUDEM!
no consegui ver onde vc passa o parametro :codi_master

bom... eu faço da seguinte forma

no insert do marter faz o campo serial receber um 'select nextval...'
assim vc pega o nextval no evento insert

assim a tabela filha pode receber o id da tabela pai mesmo sem a pai 
estar no banco ;)

uso a mesma técnica em plpgsql, tem funcionado muito bem


----------------------------------------------------------------------------------
Esta mensagem foi verificada pelo sistema de Anti-virus da SJB Solados.

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a