Problema MasterDetalhe com trigger
Estou com um problema fazendo um formulário master-Detalhe
pois a chave primaria gerada por uma Sequence via trigger
A tabela master é gravada normalmente, mas a tabela de detalhe
recebe o valor nulo da chave de ligação que seria a chave primaria da tabela master, pois não a retorno da sequence para repassar para a tabela de detalhe.
eu sei que se fechar e abrir clientdataset terei o novo valor, más
o não posso faze-lo pois tenho uma tranzação que seria perdida e não posso neste caso gravar o mater sem o detalhe. pensei em fazer uma trigger para a tabela de detalhe, más não consigue.
se eu não utilizar trigger consigo utilizando comando de Insert
e retornando da sequence o CURRVAL.
Más eu preciso usar trigger porque esta tabela é utilizada também por outro sistema que executa esta trigger. se eu fizer via código estarei
gerando duas vez o chave primaria.
Eu gostaria de saber como posso fazer para receber o valor retornado da sequencia utilizando trigger no memento que estou cadastrando o detalhe no formulário.
Ou se alguem puder me ajudar criar uma trigger para o detalhe que
insira a chave primária gerada para a tabela master.
Quem puder me ajudar agradeço.
Vanilson
pois a chave primaria gerada por uma Sequence via trigger
A tabela master é gravada normalmente, mas a tabela de detalhe
recebe o valor nulo da chave de ligação que seria a chave primaria da tabela master, pois não a retorno da sequence para repassar para a tabela de detalhe.
eu sei que se fechar e abrir clientdataset terei o novo valor, más
o não posso faze-lo pois tenho uma tranzação que seria perdida e não posso neste caso gravar o mater sem o detalhe. pensei em fazer uma trigger para a tabela de detalhe, más não consigue.
se eu não utilizar trigger consigo utilizando comando de Insert
e retornando da sequence o CURRVAL.
Más eu preciso usar trigger porque esta tabela é utilizada também por outro sistema que executa esta trigger. se eu fizer via código estarei
gerando duas vez o chave primaria.
Eu gostaria de saber como posso fazer para receber o valor retornado da sequencia utilizando trigger no memento que estou cadastrando o detalhe no formulário.
Ou se alguem puder me ajudar criar uma trigger para o detalhe que
insira a chave primária gerada para a tabela master.
Quem puder me ajudar agradeço.
Vanilson
Vanilsonvjm
Curtidas 0
Respostas
Motta
30/03/2005
Uma solução para isto seria uma mexida simples na trigger.
lá deve ter algo assim
:new.chave := sequence.nextval;
faça
if :new.chave is null then
__:new.chave := sequence.nextval;
end if;
assim a sua aplicação passa a chave e a outra não e as duas funcionam
lá deve ter algo assim
:new.chave := sequence.nextval;
faça
if :new.chave is null then
__:new.chave := sequence.nextval;
end if;
assim a sua aplicação passa a chave e a outra não e as duas funcionam
GOSTEI 0