Fórum Componente para trabalhar em master/detail #280813

09/05/2005

0

olá pessoa,
fiz uma tela de pedidos no meu sistema q usa os componentes ClientDataset (com banco firebird) eu fiz um master/detail com os ClientDatasets aninhados só q hora funciona normalmente e hora ele começa a dar uns erros q nuam era pra dar. E eu gostaria de saber se usar os ClientDatasets aninhados é seguro ou entuam usar um outro componente q funcione bem com master/detail?

obrigado.


Tap_pedroso

Tap_pedroso

Responder

Posts

09/05/2005

Yallebr

gostaria de saber se usar os ClientDatasets aninhados é seguro ou entuam usar um outro componente q funcione bem com master/detail?


[b:3e6bcb04b6]Sim é seguro.[/b:3e6bcb04b6]

Fale qual é seu erro.


Responder

Gostei + 0

09/05/2005

Tap_pedroso

depois q eu dou um insert e daí vou incluir um item no pedido eu dou um .post e depois um .applyupdates(0) e no applyupdates ele da o erro:

VIOLATION OF PRIMARY KEY UNABLE TO FINDRECORD

só esse erro começou a dar derrepente.

toda vez q eu der um .insert na tabela detail depois de inserir os dados eu tenho q dar um .post e um .applyupdates(0) ou só um .post?


Responder

Gostei + 0

09/05/2005

Bruno Belchior

VIOLATION OF PRIMARY KEY UNABLE TO FINDRECORD
pelo jeito você está violando uma chave primária... ou seja algum outro registro já tem a chave primária que você está tentando inserir...


Responder

Gostei + 0

09/05/2005

Raserafim

Acho que a violação de chave primária não é por causa de uma chave duplicada, mas sim por causa que ao inserir um registro ´detalhe´ este não tem correspondência no registro ´mestre´. ou seja, para inserir um registro ´detalhe´ você tem que primeiro inserir o registro do ´mestre´.


Responder

Gostei + 0

10/05/2005

Kotho

Uma coisa que sempre causa confusão é que, na estrutura de mestre/detalhe, quando se inclui um detalhe, as pessoas acham que o código de ligação será preenchido automaticamente (o que não deixa de ser lógico), só que não é assim que acontece. E quando se dá o post, lá vem o erro...

tenta preencher os campos de ligação... eu coloco sempre no OnAfterInsert do detalhe a atribuição dos valores.


Responder

Gostei + 0

10/05/2005

Gandalf.nho

Eu uso o evento OnNewRecord do detalhe para atribuir o valor do campo chave da ligação. Outra coisa que ao entrar no grid detalhe dou um Post no dataset master para garantir que seja criado o campo chave (no caso de ser gerado pelo banco)


Responder

Gostei + 0

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

Aceitar