LockStrength enumeration: Difference between revisions

From m204wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 5: Line 5:
<table>
<table>
<tr>
<tr>
<td>None</td>
<th>None</th>
<td>Object is not locked.<br/>No locks are held on the object, so there can be no conflict with others holding <var>Share</var> or <var>Exclusive</var> locks (readers and updaters may proceed). <var>Find Without Locks</var> statements acquire this type of record lock for Recordsets.</td>
<td>Object is not locked.<br/>No locks are held on the object, so there can be no conflict with others holding <var>Share</var> or <var>Exclusive</var> locks (readers and updaters may proceed). <var>Find Without Locks</var> statements acquire this type of record lock for Recordsets.</td>
</tr>
</tr>
<tr>
<tr>
<td>Share</td>
<th>Share</th>
<td>Object is locked in share mode.<br/>This level allows other users to hold a Share lock, but not an Exclusive lock (allows readers but not updaters to proceed). <var>Find All Records</var> statements acquire this type of record lock for Recordsets.</td>
<td>Object is locked in share mode.<br/>This level allows other users to hold a Share lock, but not an Exclusive lock (allows readers but not updaters to proceed). <var>Find All Records</var> statements acquire this type of record lock for Recordsets.</td>
</tr>
</tr>
<tr>
<tr>
<td>Exclusive</td>
<th>Exclusive</th>
<td>Object is locked in exclusive mode.<br/>This level prohibits others from holding either an <var>Exclusive</var> lock or a <var>Share</var> lock. It is generally used for update. <var>Find And Reserve</var> statements acquire this type of record lock.</td>
<td>Object is locked in exclusive mode.<br/>This level prohibits others from holding either an <var>Exclusive</var> lock or a <var>Share</var> lock. It is generally used for update. <var>Find And Reserve</var> statements acquire this type of record lock.</td>
</tr>
</tr>

Revision as of 13:44, 30 August 2012

This enumeration is used to indicate the strength of a lock, and is often used in controlling locking for Records and Recordsets. When an object referencing one or more records is instantiated, the referenced records are locked with a particular lock strength, either implicitly as with the Find All Records and Find And Reserve statements or explicitly as with the Record and Recordset class constructors.

These are the valid values of this enumeration, which correspond to standard Model 204 record-locking levels:

None Object is not locked.
No locks are held on the object, so there can be no conflict with others holding Share or Exclusive locks (readers and updaters may proceed). Find Without Locks statements acquire this type of record lock for Recordsets.
Share Object is locked in share mode.
This level allows other users to hold a Share lock, but not an Exclusive lock (allows readers but not updaters to proceed). Find All Records statements acquire this type of record lock for Recordsets.
Exclusive Object is locked in exclusive mode.
This level prohibits others from holding either an Exclusive lock or a Share lock. It is generally used for update. Find And Reserve statements acquire this type of record lock.

Typically, exclusive locks are used when there is an intent to update one or more of the records referenced by an object. A share lock is used to ensure a consistent view of records associated with an object, as such a lock prevents any other user from updating those records since an update requires an exclusive lock on a record. Unlocked (LockStrength None) records can be used where mechanisms other than locking are used to protect the integrity of field references, or in cases where an object is used to reference one or more records but the records are temporarily locked in share mode when they are actually referenced. The Record and Recordset class LoopLockStrength properties facilitate this kind of processing.

Note: As with all enumerations, the ToString method implicitly converts an enumeration value to a character string whose value is the name of the enumeration value. For more information about methods available to all enumerations, see "Common enumeration methods".