Subject Re: [IBO] Delete problem in Multi-User environment
Author Marcel Brink
> OK, but you said user B was getting an AV. So what message
appears with the AV?

The message is : EIB_DatasetError "Record was not located to Delete"
So I guess it already tried to Delete it on the Database, since
that's where the record is already deleted.

The Exception comes from TIB_UpdateSQL.SQL_Delete, Then
goes to the TIB_DataSet.CheckOperation.

> Done := False;
> repeat
> try
> Operation;
> Done := True;
> except
> on E: EIB_Error do
> begin
> Action := dacFail;
> if Assigned( ErrorEvent ) then
> ErrorEvent( Self, E, Action );
> if Action = dacFail then
> raise;
> if Action = dacAbort then
> SysUtils.Abort;
> end;
> end;
> until Done;

The ErrorEvent is never Assigned.... Strange...


> It doesn't sound right to me, somehow. I suggest picking up the
> EIB_Dataset exception Msg in the OnPostError event and calling
> SysUtils.Abort. Could you try doing that, to see whether it ?
> handles the problem?

I already placed the Delete in a Try Except block, on which the
EIB_DatasetError is catched. Then I refresh that record so it will
be delete from the dataset and I don't re-raise the Exception.

Marcel Brink
Xploration,