Campo da tabela corrompe

Firebird

25/06/2004

Pessoal, tenho dois sistemas que usam uma mesma tabela de estoque. Um lança as quantidades e o outro movimenta os itens. Nesse ultimo programa uso transaction e varios comandos update (SQL).
Não sei por qual motivo, depois de uma certa quantidade de vezes que essa operação acontece o registro parece corromper, pois no programa quando tento alterar o valor para qualquer um dos campos a mensagem retornada é: ´RECORD NOT FOUND OR CHANGED BY ANOTHER USER´.
Ainda no programa se eu abrir o registro para edição e não alterar nenhum dado ele dá o Post normalmente.
Alguem me ajuda?!? :cry:


Rodsrabbit

Rodsrabbit

Curtidas 0

Respostas

Afarias

Afarias

25/06/2004

o problema está no WHERE dos updates que não está apenas nas chaves... ou se está, vc está alterando a chave e assim não permitindo q o registro seja encontrado na execução do UPDATE


T+


GOSTEI 0
Rodsrabbit

Rodsrabbit

25/06/2004

Sim, o problema eh q as flags do provider estavam configuradas erradas, alem disso elas estavam nos TFields do SQLDataSet, por isso o erro acontecia. O modo Updata do DSProvider deveria estar upWhereKeyOnly.
Valeu pela ajuda cara!


GOSTEI 0
Afarias

Afarias

25/06/2004

alem disso elas estavam nos TFields do SQLDataSet,


Exatamente onde TEM que estar!



T+


GOSTEI 0
Rodsrabbit

Rodsrabbit

25/06/2004

Eh farias hehe
Eu esqueci de colocar o ´nao´ no ´estavam no SQLDataSet.
O fato eh q eu tava mexendo no ClientDataSet e nao surtia efeitos, descobri entaum com a ajuda de um amigo que eu deveria mexer no TField do SQLDataSet pra funcionar.
Valeu!


GOSTEI 0
Afarias

Afarias

25/06/2004

|Eu esqueci de colocar o ´nao´ no ´estavam no SQLDataSet.

:D


|O fato eh q eu tava mexendo no ClientDataSet e nao surtia efeitos,

Exato!


Beleza!
T+


GOSTEI 0
POSTAR