GARANTIR DESCONTO

Fórum Dificuldade para salvar registro de ClientDataSet #47887

04/11/2004

0

Olá Pessoal,

To enrolado há alguns dias nesse código fonte, vou tentar ser breve.

Estou utilizando Firebird 1.5 com os Seguintes componentes no meu datamodule:

1 - IBDatabase
1 - IB Transaction
1 - IB Table
1 - DatasetProvider
1 - Client Dataset
1 - datasource

Em um dos forms eu tenho meus campos os quais linkei com o datasource que está ligado ao Client Dataset, a minha enorme dificuldade esta em alterar os registros e não deixá-los apenas bufferizados.

Por exemplo no form principal executo uma query para encontrar o registro desejado. Ai coloquei um DBGrid e um botão Alterar, então seleciono o registro no grid e clico no botão alterar.

No botão alterar coloco a instrução de abrir o form mais
datamodule1.clientdataset1.edit;
O form é aberto corretamente com os registros que desejo alterar, após as alterações clico no botão Ok, o qual tem as instruções:

datamodule1.clientdataset1.post;
datamodule1.clientdataset1.applyupdates(-1);

O registro é salvo e aparece no grid atualizado, mas se saio e entro no programa novamente ele não está mais lá.

Que comando está faltando?

Desculpem o desespero, mas só falta isto para terminar meu programinha.


Reifas

Reifas

Responder

Posts

05/11/2004

Gandalf.nho

As alterações estão sendo comitadas no banco?


Responder

Gostei + 0

05/11/2004

Maicongabriel

Não utilize ´ApplyUpdates(-1)´, pois assim você ignora os erros que possam vir a ocorrer durante o ´Commit´ dos dados e consequentemente um Rollback é efetuado!
Ao invés de -1, utilize 0,1,2,... ou o numero que desejar, que deve ser igual ao numero de erros que você deseja que sejam exibidos, até efetuar o ´RollBack´.
Para verificar os Erros, no seu ClientDataSet (se você possui D7 e superior), faça o seguinte:

Declare na uses a unit: [b:893c9b5952]RecError[/b:893c9b5952]
No evento OnReconcileError, adicione:
Action := HandleReconcileError(DataSet, UpdateKind, E);

Esta é apenas uma das possibilidades! Outras possibilidades podem estar diretamente ligadas ao ´Interbase Express´, com o qual eu particularmente não trabalho e desconheço.


Responder

Gostei + 0

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

Aceitar