VCursor lock question - 2d try

Fran=?ISO-8859-1?B?5w==?=ois Van Lerberghe frvanlerberghe at gmail.com
Tue Oct 8 11:38:08 CDT 2013


As nobody answer my question, let me post it again :

I have a function (RealBasic/Xojo method) where I update every record of a
table (5000 records). In order to do that, I make a VCursor with
EVLokType.kReadWrite on the whole table.
At the end of this function , I call another function to update a few
records (50) of that same table. This update is in another function because
it is called by some other places of the project. How must I deal with the
records locking in this second Vcusor using the same table, but not the same
records ?

1) If I nil the first Vcursor (locking the whole table) before create the
second, locking the needed records, I have a risk (very low I know, but that
exist) that, just before I create my second Vcursor, another user lock some
records of that table, reading or writing incorrect data and stopping me to
complete the work.

2) Must I keep the first Vcursor ensuring that nobody can modify the table
and create the second with kNoLock ? Is it safe to update the records in
this second Vcursor ?

3) I see a third option : Keeping the first cursor. I pass this Vcursor as
parameter to iterate, test each record and update the records that meet some
condition. I don't like this option as
- I prefer sending a second SQL query to retrieve the needed records rather
than iterate and test each record
- this second function is called by some other places of the project

I prefer the second option if it is safe. Could you be kind enough to give
me your advice on this ?

François Van Lerberghe
Rue Thier Monty, 15 A
4570 Marchin
Belgium



More information about the Valentina mailing list