Problemas ao gravar regs no banco
blz amigos,
estou com um probleminha que não estou conseguindo resolver, a questão é o seguinte, tenho dois componentes ´TIBDataSet´, um definido como master(dtsVendas) e o outro como sendo detalhe(dtsItens) através da propriedade datasource e no Editor Sql do dataSet detalhe eu escrevi o select(SELECT * FROM item_venda WHERE id_venda = :id_venda).
O problema ocorre quando eu vou gravar um novo registro (dtsVendas.post depois eu gravo os itens dtsItens.post) aparesse uma mensagem de erro de acesso violado na chave estrangeira da tabela de itens (item_venda), o que paresse a entender é que está gravando
primeiro os itens, estranho isso! como sitado acima eu primeiro gravei a venda para então depois gravar os itens.
estou usando o Interbase6 e o delphi7.
alguem sabe como resolver este problema?
agradeço,
Pestana.
estou com um probleminha que não estou conseguindo resolver, a questão é o seguinte, tenho dois componentes ´TIBDataSet´, um definido como master(dtsVendas) e o outro como sendo detalhe(dtsItens) através da propriedade datasource e no Editor Sql do dataSet detalhe eu escrevi o select(SELECT * FROM item_venda WHERE id_venda = :id_venda).
O problema ocorre quando eu vou gravar um novo registro (dtsVendas.post depois eu gravo os itens dtsItens.post) aparesse uma mensagem de erro de acesso violado na chave estrangeira da tabela de itens (item_venda), o que paresse a entender é que está gravando
primeiro os itens, estranho isso! como sitado acima eu primeiro gravei a venda para então depois gravar os itens.
estou usando o Interbase6 e o delphi7.
alguem sabe como resolver este problema?
agradeço,
Pestana.
Pestana
Curtidas 0
Respostas
Pestana
05/12/2006
alguem poderia me ajudar, eu ainda não consegui resolver este problema.
GOSTEI 0
Corcos
05/12/2006
Debuga para saber aonde ele trava se é justamente quando grava o detalhe, mas veja 2 coisas antes:
1- se os campos são identicos
2- se quando vc grava o master vc da commit e depois grava o detalhe
1- se os campos são identicos
2- se quando vc grava o master vc da commit e depois grava o detalhe
GOSTEI 0
Pestana
05/12/2006
o erro ocorre quando vou gravar a tabela de vendas, este tipo de erro ocorre quando se tenta gravar a tabela de itens primeiro, mas não é o caso.
se eu desfazer o master detalhe, ai dá certo ele grava, mas não é o correto.
try
-> dtSetVendas.Post;
dtSetItens.Post;
DM.Trans.CommitRetaining;
except
DM.Trans.RollbackRetaining;
raise;
end;
muito estranho isso! se fazer do mesmo jeito com componentes da paleta bde da certo.
se eu desfazer o master detalhe, ai dá certo ele grava, mas não é o correto.
try
-> dtSetVendas.Post;
dtSetItens.Post;
DM.Trans.CommitRetaining;
except
DM.Trans.RollbackRetaining;
raise;
end;
muito estranho isso! se fazer do mesmo jeito com componentes da paleta bde da certo.
GOSTEI 0
Pestana
05/12/2006
UP
GOSTEI 0
Pestana
05/12/2006
UP
GOSTEI 0
Pestana
05/12/2006
UP
GOSTEI 0
Pestana
05/12/2006
UP
GOSTEI 0