Subject | Re: [IBO] TIB_Edit is working backwards |
---|---|
Author | Geoff Worboys |
Post date | 2002-03-21T12:19:25Z |
...
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.
notes that there are some DML Cache changes in the 4.2.G release.
--
Geoff Worboys
Telesis Computing
> 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 shouldI haven't been around for a while but I did just read in the release
> abandon this feature.)
notes that there are some DML Cache changes in the 4.2.G release.
--
Geoff Worboys
Telesis Computing