Array
(
)

IbDataSet somente leitura!!!

Paullsoftware
   - 03 fev 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?


Educacau
   - 03 fev 2006

Vc já tentou o ApplyUpdates?


Paullsoftware
   - 03 fev 2006


Citação:
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...


Delphi32
   - 03 fev 2006

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


Paullsoftware
   - 05 fev 2006

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)???