¡Buen día a todos!
He leído algunos documentos que hablan de usar los métodos de TIBTransaction, CommitRetaining en los eventos AfterPost y AfterDelete de los conjuntos de datos, y RollbackRetaining en el evento AfterCancel.
Comprendo la utilidad de los dos primeros, pero no se exactamente
con qué fin se utiliza RollbackRetaining en AfterCancel, cuando por lógica (aparentemente) no hay nada que deshacer transaccionalmente hablando. Ya que, hasta ese punto, los datos que se hayan introducido en una inserción o modificación de registro están sólo en la memoria del conjunto de datos en la aplicación, y al cancelar, pues simplemente desaparecen de la memoria del programa sin que se haya afectado a la base de datos.
Les agradezco que me orienten con la anterior duda.
Agrego, que en uno de mis proyectos IBX-Firebird, estoy utilizando las propiedades DefaultAction = TACommitRetaining e IdleTimer = 250 del objeto TIBTransaction principal. Dejar de usar estas propiedades no sería mucho problema, ya que desarrollé componentes derivados de los IBX, en los cuales podría implementar internamente las llamadas a CommitRetaining y RollbackRetaining necesarias. Pero... ¿para qué RollbackRetaining?
Un abrazo, chao.
Al González

.