Subject RollBackRetaining
Author hans@hoogstraat.ca
Hello,

Found at least the RollBackRetaining all open table refreshes problem
in IBA_TRansaction.IMP. I included a partial solution and suggested
a total solution. It sure works for me.

My sincere apologies if this message adds to the general
confusion I seem to be creating.

Best Regards,
Hans

==== IBA_TRansaction.IMP ====

procedure TIB_Transaction.API_RollbackRetaining;
var
ii: integer;
SaveCW: word;
begin
if Assigned( dll_rollback_retaining ) then
begin
with IB_Session do
begin
asm fstcw [SaveCW] end;
errcode := isc_rollback_retaining( @status, PtrHandle);
asm fldcw [SaveCW] end;
if errcode <> 0 then HandleException( Self );
end;
end
else
begin
API_Rollback;
API_Start;
end;
for ii := 0 to DatasetCount - 1 do
try
with Datasets[ ii ] do
begin
if Unidirectional then
begin
if not Assigned( dll_rollback_retaining ) then
Close;
end
else
// Hans Hoogstraat <hans@...>
// 08/05/2001
// To avoid refreshing of all open Tables on a RollBack retaining,
added
// RequestLive test to avoid at least table refreshes of R/O tables.
// Simular is required for RollBack.
// If the Table Postings would save the Table 'NeedToPost' flag as
say
// 'JustPosted' after posting, then the RollBack could only refresh
tables
// posted too since last StartTransaction. A new
StartTransaction/Open {not Commit}
// has to clear all 'JustPosted' flags

if RequestLive then
// 08/05/2001

Refresh;
end;
except
on E: Exception do Application.HandleException( E );
end;
IB_Session.ResetTimerNotification( Self );
end;