Gravar fisicamente no banco(FB 1.5)
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);
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
Curtidas 0
Respostas
Cabelo
30/07/2004
Use o método ApplyUpdates no clientdataset..
clientdataset.applyupdates(0);
espero ter ajudado..
Cabelo
clientdataset.applyupdates(0);
espero ter ajudado..
Cabelo
GOSTEI 0
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
30/07/2004
Ou você pode fazer assim também:
Pois se algum erro ocorrer cancela-se a gravação....
SqlClientDataSet.Post; if SqlClientDataSet.ApplyUpdates(0) <> 0 then SqlClientDataSet.CancelUpdates;
Pois se algum erro ocorrer cancela-se a gravação....
GOSTEI 0