erro dbexpress firebird

27/08/2004

quando edito um registro e salvo (apos salvar applyupdates) e tento usar o refresh da o seguinte erro ... clientdataset1: must apply updates before refreshing data.

o interessante é que se saio mesmo apos o appyupdates não grava os dados no banco, a as vezes qdo tento usar orefresh ele da certo e ai os dados são gravados.... lasca...

uso sqlquery, datasetprovides e clinetdataset ... firebird 1.5 .. delphi 7


Guibas

Respostas

27/08/2004

Vinicius2k

Colega,

O problema é que o ApplyUpdates não está sendo executado com sucesso...
Vc já verificou se estão havendo erros no ApplyUpdates?
if cds.ApplyUpdates(0) > 0 then 
// houveram erros


Desculpe a crítica, mas vc está com problemas por não levar em consideração nossas respostas... eu e o afarias já lhe falamos isso por duas vezes em outro tópico... http://delphiforum.icft.com.br/forum/viewtopic.php?t=50164

:!: [b:c0422bb263]O método ApplyUpdates não gera exceção em caso de erros.[/b:c0422bb263]

Se quiser saber o erro busque-o no evento OnReconcileError do ClientDataSet com , por exemplo:
ShowMessage(E.Message);


T+


Responder Citar

27/08/2004

Guibas

apareceu essa msg de erro agora

update affected more than 1 record

como resolver?

coloquei a propriedade do dsprovider aloowmultirecordupdates pra true ele funcionou mas só que alterou em todos os registro da tabela e não apenas na que alterei :)


Responder Citar

27/08/2004

Vinicius2k

Mas pq vc mudou a propriedade se não queria que vários registros fossem afetados?
Olha só, ´cada caso é um caso´... não posso ´chutar´ para vc o que está acontencendo pois não estou vendo o problema e não conheço a estrutura da base e o tipo de inserção e operações que vc está fazendo nela...
Meu conselho é que vc estude (Help do Delphi) para que serve e como utilizar cada propriedade do DataSetProvider (UpdateMode, Options) e também as 4 ´ProviderFlags´ dos TFields...
Todas elas tem uma função fundamental e que devem ser corretamente ajustadas, muitas vezes de forma diferente, para cada tabela ou update da aplicação...

T+


Responder Citar