Gravar fisicamente no banco(FB 1.5)

Firebird

30/07/2004

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

Curtidas 0

Respostas

Cabelo

Cabelo

30/07/2004

Use o método ApplyUpdates no clientdataset..

clientdataset.applyupdates(0);

espero ter ajudado..

Cabelo


GOSTEI 0
Maicongabriel

Maicongabriel

30/07/2004

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:


GOSTEI 0
G1b4

G1b4

30/07/2004

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....


GOSTEI 0
POSTAR