Q: current record modified?

Hi everybody!

Please forgive me if a similar question has been posted before. My problem
is the following:

I have a form with a TDBGrid displaying fields from a TTable. If the user
presses an Edit button, I open another form (lets call it the Edit Form)
for data editing.
Now, in a network situation, it can happen that what is displayed in the
DBgrid is not the actual data anymore, since another user might have
modified/deleted the current record in the meantime. Of course that can
happen during the time the data are edited in the Edit form. On pressing the
OK button in the edit form, I would like to inform the user of the changes
already made by another user. Also, if the changes occured even before the
Edit form is loaded, I would like to react to that by refreshing the data
and informing the user as well.
I don't use any data-aware controls (would it change anything if I did?).
Also I don't want to lock the table while the edit form is displayed.
I would prefer to have a little test procedure that would tell me if the
current record has been modified. I tried to do something like then following:

Function IsUptoDate: boolean;
    Table1.Edit; {do a dummy edit}
    {.... handle the exception that gets fired if
     the data are not up to date any more}

However, this doesn't work as I expected. In LIBS the dummy edit raises a
check violation on some check contraint that I imposed (***Why? The data were
valid before the edit and I did not change them by doing the dummy edit!?***)
or other weird database exceptions.....?

(Note: I am aware that the LIBS is a single
user thing, but I dont want my source code to depend on wether the app will
be running in a single or multiuser environment.)

I am sure there is a better method of testing for modified or deleted
records, but I'd like to now what the state of the art really is.

Any comments are greatfully appreciated, thanks in advance,