<<
Many of the items in our database use text (1-5 paragraphs) that are
later used in larger, multi page text based reports. Multi users editing
the same text field at the same time has happened several times for us
with troubled outcomes. 
>>

It sounds like you have a design issue -- a single column in a relational 
database is not necessarily the best place to store text that will 
simultaneously be edited by other users.

Is it possible to "decompose" the text into many separate database values, such 
that each value could be edited by a single user without conflict, and then 
"recompose" the text when you need to print it?

If not, you'll probably have to develop your own concurrency system.  You 
already have one that locks out all users from a record when it's being edited. 
 You could elaborate this with a separate temporary table into with two columns 
that each get a copy of the original text when the user starts to edit.  The 
user then edits one copy, the other stays the same.  When the user wants to 
save the changes you compare the _unchanged_ copy in their temporary table to 
the _current_ data in the real table.  If it's different, it was edited by 
another user.  You can now display all three versions (original, other user's 
changes, and this user's changes) side by side for the user to either merge 
their changes in to the other user's changes, to overwrite the other user's 
changes, or to cancel their own changes in favor of the other user.
--
Larry


Reply via email to