- Read operation according to a key item or not
In french: HRecule
Not available with this kind of connection
Moves backward several records from the current position in the data file, according to a specified item.
The destination record is read and loaded in memory: the HFSQL variables are updated (Customer.Name for example, which means the Name
item of Customer
Several cases may occur after the call to HBackward
- no other record exists in the data file: function HOut returns True. No read operation is performed.
- the function tries to lock a record that is already locked in read-only: HErrorLock returns True and HOut returns True.
Access by JDBC: The management of locks is not available for databases accessed by JDBC.
This function can be used with the data files, HFSQL views or queries.
// Go back to the 200th record of the Customer data file
// according to the CustName key
HBackward(Customer, CustName, 199)
<Result> = HBackward([<Data file> [, <Item>] [, <Step> [, <Options>]]])
- True if the backward move was performed in the data file,
- False if an error occurred (lock, end of file, etc.): the record is not read. HError is used to identify the error.
<Data file>: Optional character string (with or without quotes)
Name of data file, view or query used. If this name is not specified, HBackward will use the last data file used by the last HFSQL management function (function starting with "H").
<Item>: Optional character string (with or without quotes)
Name of item according to which the browse is performed. If this name is not specified, HBackward handles the last file item used by the last function for HFSQL management (starting with the letter H).
All the items used to move backward in the file are considered as being key items.
<Step>: Optional integer
Number of steps backward (which means number of records to browse). By default, <Step> = 1.
<Options>: Optional Integer constant (or combination of constants)
- the lock mode applied to the record read. By default, the lock performed corresponds to the current lock.
|hLockNo||No lock (even if HStartLock was called): the record can be read or modified by another application during the reading.|
|hLockWrite||Lock in write mode: the record currently read can be read by another application but it cannot be modified by another application.|
|hLockReadWrite||Lock in read/write: the record currently read cannot be read or modified by another application.|
The lock options will have no effect if the locks are not supported by the OLE DB provider or by the Native Connector.
- the management of duplicates during the browse. By default, all the duplicates are browsed.
|hDistinct||When a browse is performed on a key item, a single record is browsed if duplicates are found.|
<Options> is ignored.
Access by JDBC: <Options> is ignored.
Read operation according to a key item or not
If the item used is a key item:
- if the hDistinct constant is not enabled, HBackward moves backward of <Step> key values from the current position.
- if the hDistinct constant is enabled, HBackward moves backward of <Step> distinct key values from the current position. If duplicates are found, a single duplicate is read.
If the item used is not a key item:
- the hDistinct constant is not available,
- HBackward moves backward of <Step> active records from the current position.
The memos associated with the record can be automatically read (or not) when reading the record. HSetMemo
is used to customize this automatic read operation.
If the memos are supported, the associated text memos are read when the record is read. The binary memos are read only when they are explicitly used (HExtractMemo
By default (no lock variable specified), the lock performed corresponds to the current lock mode.
If a lock is requested (hLockWrite or hLockReadWrite constant), the record will be read and locked only if this record is not already locked by another application.
There is no need to specify a lock parameter if the data file is locked by HStartLock
: the lock specified by HStartLock
is automatically taken into account. To ignore the lock set by HStartLock
, use the hLockNo
This page is also available for…