Como tratar o Response do OnUpdateError DataSetProvider ????

Delphi

01/07/2006

Boa noite!

Estou desenvolvendo um sistema client/server mas preparado para 3camadas. Tenho um RDM onde estão todas as regras de negócio e um DM onde estão os ClientDataSets. Até ae tudo bem! Como não quero sair dessa maneira de programar, estou com um problema. Uso o FB 1.5 como banco, mas como a estrutura é para ser futuramente em 3camadas não existe nada no banco (trigger, procedure) só generator! Para eu tratar das chaves primarias e dos IDs, utilizo tudo no RDM!

Essa é a função do BeforeUpdateRecord!


Assim eu consigo controlar os IDs no RDM!



O problema é quando o generator está errado, vai dar um “violação de chave primária”!

Eu gostaria de usar o evento OnUpdateError para tratar isso, mas não estou conseguindo!


Ta ae o meu evento. Nesse evento eu quero verificar se ocorreu um erro de chave e se o campo do dataset for integer ae ele vai tratar o erro. Alem de consertar o ID tbm quero colocar o valor certo para o generator!

Tudo roda certo, o valor do Generator é consertado mas da um erro estranho de “Invalid response”.

Evento.


Muito obrigado!


Luizito

Luizito

Curtidas 0

Respostas

Luizito

Luizito

01/07/2006

Ta ae as figuras !!!



e a segunda



GOSTEI 0
Luizito

Luizito

01/07/2006

Poxa ninguem vai responder ??????????????????????????????


GOSTEI 0
Luizito

Luizito

01/07/2006

É realmente ninguem sabe me responder !!!

Nossa !!!!!!!!!!!!!!!!


GOSTEI 0
Luizito

Luizito

01/07/2006

Ninguém ainda ?????????????????????????????


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

01/07/2006

porque você não faz a verficação no próprio BeforeUpdateRecord? se o valor do generator estiver inconsistente você o atualiza e depois atribui o novo valor ao seu registro. assim você evita o erro e não precisa se preocupar em tratar o UpdateError.

é só uma idéia...


GOSTEI 0
Luizito

Luizito

01/07/2006

Para eu fazer a verificação da consistência no BeforeUpdateRecord eu teria que fazer 2 consultas ao banco, uma que ja é feita para buscar o proximo ID e outra para verificar se o ID é válido.
Se eu fizesse o tratamento só na hora do erro eu economizaria muitos selects desnecessários no banco ! Só trataria o que realmente tivesse dado erro !
Mas tbm pode ser uma solução. O problema é que meu aplicativo é em 3camadas e quanto mais eu puder evitar ´idas´ ao banco melhor, assim melhoraria a performance!

Abraço !


GOSTEI 0
Luizito

Luizito

01/07/2006

Nossa , ninguém mesmo ???????


GOSTEI 0
Luizito

Luizito

01/07/2006

Tá difícil alguém responder mesmo !


GOSTEI 0
Luizito

Luizito

01/07/2006

É realmente ninguém sabe !!!!!!!!!!!!


GOSTEI 0
POSTAR