Subject Re: [IBO] TIB_Edit is working backwards
Author Geoff Worboys
...
> 00303845 Ib_components::TIB_BDataset::SysPost(Self=:02B6D694, CancelUnmodified=false, IsRetaining=false)
> 002FCD48 Ib_components::TIB_Dataset::SysEdit(Self=:02B6D694)
> 0031163B Ib_components::TIB_DataSource::Edit(Self=:013B1770)
...

Whenever a change of state is about to occur IBO calls SysPost to
ensure anything that needs to be posted is posted. The curiosity in
this situation is why SysPost actually has anything to do...

procedure TIB_Dataset.SysPost( CancelUnmodified, IsRetaining: boolean );
begin
if State = dssSearch then
SysPostSearch( true )
else
if NeedToPost and // <<<< this if should be false !!!!
( not IsPosting or
( IsRetaining and not IsPostRetaining )) then
begin

As indicated above, I would expect the if statement to be false and so
your BeforePost would not be called. IOW; When you start editing
(from browse) NeedToPost should be false - obviously this is not the
case in your instance - and you need to discover the reason.

You could try placing a breakpoint in IBA_Dataset.IMP:
procedure TIB_Dataset.SetState( AValue: TIB_DatasetState );
to see if the dataset is getting put into edit/insert/delete state
prematurely by some other event.


> BTW - has anyone read my DMLCache mails? (Seems like I should
> abandon this feature.)

I haven't been around for a while but I did just read in the release
notes that there are some DML Cache changes in the 4.2.G release.


--
Geoff Worboys
Telesis Computing