IbDataSet somente leitura!!!

03/02/2006

Ae galera to com um probleminha básico num IbDataSet que não ta salvando as alterações que são feitas no form...

to usando tDBnavigator para controles no form, faço um mudança básica tipo troco o nome do cliente e quando fecho o form e abro novamente ta sem a alteração...

dtclientes affterPost
Código:
if Not Transaction.InTransaction then
Transaction.StartTransaction;
Try
if Transaction.InTransaction then
Transaction.CommitRetaining
Except
if Transaction.InTransaction then
Transaction.RollbackRetaining;
end;


e affterDelete

Código:
if Not Transaction.InTransaction then
Transaction.StartTransaction;
Try
if Transaction.InTransaction then
Transaction.CommitRetaining
Except
if Transaction.InTransaction then
Transaction.RollbackRetaining;
end;


quando o form é fechado eu fecho o dataSet e quando o form é aberto eu abro o DataSet.... alguém já passou por isso?


Paullsoftware

Respostas

03/02/2006

Educacau

Vc já tentou o ApplyUpdates?


Responder Citar

03/02/2006

Paullsoftware

Vc já tentou o ApplyUpdates?


claro que sim...
mais continua do mesmo jeito....
e usando os controles do DbNavigator não funciona, pois, uso eles em outros forms e funcioina numa boa...


Responder Citar

03/02/2006

Delphi32

Se você estiver usando ClientDataSet, ele não vai fazer com que os eventos AfterPost e AfterDelete sejam executados. Sendo assim, seus dados não estariam sendo comitados. Para funcionar dessa maneira que você quer, coloque ApplyUpdates e logo em seguida um Commit (se isso for aplicável).

ClientDataSet.ApplyUpdates(0);
Transaction.Commit; //ou rettaining

Para tirar a dúvida, experimente colocar breakpoints na linha que dá commit e veja se ela está sendo executada.

Até.


Responder Citar

05/02/2006

Paullsoftware

valeu Delphi32...
eu substitui os controles do dbnavigator por botões, nos eventos coloquei IbDataSet.Post;
IbDataSet.ApplyUpdates...

dai passou a funcionar, mais não entendi o (0) no applyupdates(0)???


Responder Citar