erro: 2 pc alterando mesmo registro

18/11/2004

0

uso dbexpress + d7 + firebird - quando uma usuário modifica um registro e tem outro usuario editando o mesmo registro aparece esse erro quando o último vai salvar....

record not found or changed by anothe user



alguem sabe como contornar isso?


Guibas

Guibas

Responder

Posts

18/11/2004

Fsflorencio

Acredito que enquanto um usuário está alterando o registro a transação fica ativa ´travando´ o registro.

Para contornar este problema sempre procuro deixar as transações o mais curtas possíveis.

Ex.: Quando aperto o botão OK eu abro a transação, modifico o registro e comito a transação, minimizando astronomicamente esta possibilidade de erro. Para isto não costumo utilizar data-aware controls (componentes como dbedit) para intermediar o processo, uso controles comuns e passo os conteúdos como parâmetros de uma query para executar um update.


Responder

19/11/2004

Afarias

Vc está usando DBX com ClientDataSets?? se SIM, qual a configuração do [b:04f283781d]UpdateMode[/b:04f283781d] dos seus Providers?


T+


Responder

22/11/2004

Guibas

upwhereall...


Responder

23/11/2004

Afarias

Sempre quando vc tem esse erro vc deve ´re-carregar´ o registro e tentar novamente. Ele informa apenas q o registro no banco não é mais o q vc está editando em memória.

Para definir isso (quando o registro é ou não o mesmo e se pode ou nào ser atualizado) vc define o UpdateMode e os ProviderFlags

upWhereALL é muito restritivo! E vc deve estar *muito* atento aos ProviderFlags!

uma ´dica´ é mudar o UpdateMode para [b:84ce4ef7ff]upWhereKeyOnly[/b:84ce4ef7ff] e definir nos ProviderFlags (dos TFields do DataSet) o campo chave apenas como pfInKey=True


T+


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar