Fórum Gravar fisicamente no banco(FB 1.5) #45742

30/07/2004

0

Uso firebird 1.5 e a DBExpress pela 1ª vez. Dou um post, e qdo fecho a aplicação e a abro novamente, os dados não estão lá. Como gravar fisicamente no banco usando a DBExpress?obs Na palheta Interbase funciona muito bem, gostaria de fazê-lo na DBExpress.

SqlConnection==>Base de dados
SqlClientDataSet==>SqlConnection
TDataSource ==>SqlClientDataSet
bitbtn1 ==> SqlClientDataSet.Insert;
bitbtn2 ==> SqlClientDataSet.Post;
Onde devo dar o ApplyUpdates(-1)? tentei no afterpost, mas deu erro.
assim: SqlClientDataSet.ApplyUpdates(-1);


Paulo

Paulo

Responder

Posts

30/07/2004

Cabelo

Use o método ApplyUpdates no clientdataset..

clientdataset.applyupdates(0);

espero ter ajudado..

Cabelo


Responder

Gostei + 0

30/07/2004

Maicongabriel

Onde devo dar o ApplyUpdates(-1)? tentei no afterpost, mas deu erro. assim: SqlClientDataSet.ApplyUpdates(-1);

Faça logo após o Post!
SqlClientDataSet.Post;
SqlClientDataSet.ApplyUpdates(0);

Não utilize o -1 como parâmetro, pois ele suprime qualquer mensagem de erro!
Não esqueça tambem de ativar o OnReconcileError do ClientDataSet, com o código::
Action := HandleReconcileError(DataSet, UpdateKind, E);

Pois assim, qualquer erro que ocorrer na tentativa de gravação, lhe será mostrado na tela, porque um erro durante um ApllyUpdates executa um Rollback automatico, resultando na não gravação dos dados no banco! :wink:


Responder

Gostei + 0

05/08/2004

G1b4

Ou você pode fazer assim também:

SqlClientDataSet.Post; 
if SqlClientDataSet.ApplyUpdates(0) <> 0 then SqlClientDataSet.CancelUpdates;


Pois se algum erro ocorrer cancela-se a gravação....


Responder

Gostei + 0

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

Aceitar