PC SOFT

WINDEVWEBDEV AND WINDEV MOBILE
ONLINE HELP

Home | Sign in | English UK

  • Modifying the type of lock for a record
  • Effect of lock mode
  • Lock failure
  • Number of locks
  • Native SQL Server Connector: Lock in write mode
  • Managing locks in OLE DB
  • Persistence of lock
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Others
Stored procedures
Locks a record and restricts the access to this record for all the other applications. Then, the record can be unlocked by HUnlockRecNum.
Note: Several cases may occur after the call to HLockRecNum:
  • The record is already locked by another application: the lock cannot be performed.
  • The data file containing the record is entirely locked: the lock cannot be performed.
An automatic management of lock errors and modification conflicts is performed by default (except in the code of stored procedures). This assisted management of errors can be customized or disabled at any time by HOnError.
HErrorLock returns True if a lock problem occurs.
Caution: HLockRecNum must be used with great care: indeed, during the lock, the record is not re-read. Therefore, it may have been deleted or modified since the last access to this record. We recommend that you use HRead with lock option. Note: From version 19, HFSQL is the new name of HyperFileSQL.
Example
// Lock a record found in CUSTOMER file
HLockRecNum(CUSTOMER, hCurrentRecNum, hLockReadWrite)
// Process on the record
...
// Give the access back to the record
HUnlockRecNum()
Syntax
<Result> = HLockRecNum([<Data file> [, <Record number>]] [, <Lock>])
<Result>: Boolean
  • True if the operation was performed,
  • False if a problem occurred. HError is used to identify the error.
<Data file>: Optional character string (with or without quotes)
Name of data file used. If this name is not specified, HLockRecNum handles the last data file used by the last function for HFSQL management (starting with the letter H).
<Record number>: Optional integer
Number of the record to lock. If this parameter is not specified, HLockRecNum handles the current record.
Native Connectors (Native Accesses) HLockRecNum locks the current record only. You cannot specify a record number other than the current one (to specify the current record number, use the hCurrentRecNum constant).
<Lock>: Optional integer constant
Used to define the type of lock performed on the record.
hLockWrite
(default value)
Lock in write mode: the record found in the data file can be read by another application but it cannot be modified by another application.
No lock on the record or on the data file can be defined by another application.
hLockReadWriteLock in read/write: the record found in the data file cannot be read or modified by another application.
No lock on the record or on the data file can be defined by another application.
hLockNoNo lock: the record can be read or modified by another application.
Remarks

Modifying the type of lock for a record

To modify the type of record lock, call HLockRecNum and specify the requested type of lock. There is no need to unlock the record beforehand.

Effect of lock mode

HLockRecNum has no effect if the lock mode of the data file is set to hModeMono (see HMode).

Lock failure

If the record is already locked, the lock request is retried HNbRetry times (50 by default).
If the data file cannot be unlocked after H.NbRetry attempts, HErrorLock returns True. The H.Level variable indicates whether the record or the data file is locked.

Number of locks

The number of records that can be individually locked in a data file is unlimited.
WEBDEV - Server codeAjaxStored proceduresNative Connectors (Native Accesses)

Native SQL Server Connector: Lock in write mode

HLockRecNum locks the record in write mode, not in read-only. Therefore, HLockRecNum prevents the record from being modified by another computer.
HLockRecNum used on a locked record does NOT return a lock error (because only a read operation is performed).
However, HModify will return a lock error on the locked record.
WEBDEV - Server codeAjaxStored proceduresOLE DB

Managing locks in OLE DB

HLockRecNum is not supported. This function generates the non-fatal error "Invalid operation for this type of database".
WEBDEV - Server codeAjaxNative Connectors (Native Accesses)

Persistence of lock

With Native SQLServer and Sybase Connectors, a record blocked by HLockRecNum is unlocked when read.
Component : wd240hf.dll
Minimum version required
  • Version 9
This page is also available for…
Comments
Click [Add] to post a comment