Fórum Problemas ao gravar regs no banco #334224

05/12/2006

0

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.


Pestana

Pestana

Responder

Posts

06/12/2006

Pestana

alguem poderia me ajudar, eu ainda não consegui resolver este problema.


Responder

Gostei + 0

06/12/2006

Corcos

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


Responder

Gostei + 0

06/12/2006

Pestana

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.


Responder

Gostei + 0

06/12/2006

Pestana

UP


Responder

Gostei + 0

06/12/2006

Pestana

UP


Responder

Gostei + 0

06/12/2006

Pestana

UP


Responder

Gostei + 0

06/12/2006

Pestana

UP


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar