Subject | Re: How best to prevent overlapping updates by multiple users? |
---|---|
Author | mlq97 |
Post date | 2008-03-08T13:12:09Z |
Thanks so much Helen.
"One way to do this is to perform a "dummy update" as soon as the user
selects the record for editing."
How would one do this?
Really I suppose that I'm looking for column level locking rather than
row level locking.
I have had to implement a method to allow users to dictate row
sequencing from within a grid. ie the sequence of each row in the
table must be adjustable with regard to the others. The standard
DevExpress Grid method becomes unworkable with large numbers of rows
and I have developed a method that scales OK. This uses a "sequence"
column and regular background recalibration of sequence numbers so
that the system copes with input of new rows simultaneously by
multiple users, correctly (or nearly correctly) sequenced. Also there
are a number of other background processes which frequently update
certain other columns holding statistical data.
To make this work reasonably well I've (probably unwisely) implemented
a timer in each client to provide automated background updates on each
client every 3 minutes so that data is up to date on each client.
But each document can be open for editing for much longer than this.
So I was thinking of using an update trigger to detect whether the
document has in the meantime been "issued" by another user and if so,
blocking the update on certain columns if they have been changed and
providing an error message. This way I assume that I can achieve the
effect of column locks while still allowing the background refereshes?
<grimace>
Scratches head, waiting for Helen to ask what he's been smoking
</grimace>
I seem to recall that the TIB components include automatic updating of
data when it changes on the server, but I am using TIBO components and
am now heavily invested in DevExpress TDataset controls etc.
Mitch
"One way to do this is to perform a "dummy update" as soon as the user
selects the record for editing."
How would one do this?
Really I suppose that I'm looking for column level locking rather than
row level locking.
I have had to implement a method to allow users to dictate row
sequencing from within a grid. ie the sequence of each row in the
table must be adjustable with regard to the others. The standard
DevExpress Grid method becomes unworkable with large numbers of rows
and I have developed a method that scales OK. This uses a "sequence"
column and regular background recalibration of sequence numbers so
that the system copes with input of new rows simultaneously by
multiple users, correctly (or nearly correctly) sequenced. Also there
are a number of other background processes which frequently update
certain other columns holding statistical data.
To make this work reasonably well I've (probably unwisely) implemented
a timer in each client to provide automated background updates on each
client every 3 minutes so that data is up to date on each client.
But each document can be open for editing for much longer than this.
So I was thinking of using an update trigger to detect whether the
document has in the meantime been "issued" by another user and if so,
blocking the update on certain columns if they have been changed and
providing an error message. This way I assume that I can achieve the
effect of column locks while still allowing the background refereshes?
<grimace>
Scratches head, waiting for Helen to ask what he's been smoking
</grimace>
I seem to recall that the TIB components include automatic updating of
data when it changes on the server, but I am using TIBO components and
am now heavily invested in DevExpress TDataset controls etc.
Mitch