- Managing automatic identifiers
- Writing deleted or crossed records
- Version of the data file after a write operation
- Managing the binary memos
- Browsing and writing a record
In french: HEcrit
Not available with this kind of connection
Writes a record into a data file without updating the indexes corresponding to all keys used in the data file. The memos are added if necessary (if the management of memos is enabled, HSetMemo
After the call to HWrite:
- the integrity errors and the duplicate errors are not checked.
- if a lock problem occurs (attempt to modify a locked record), HErrorLock returns True and the record is not modified.
The management of locks is only performed on HFSQL Client/Server data files or data files handled by a native access. An HFSQL Mobile record cannot be locked. Indeed, the operating system of Pocket PC does not allow you to lock records.
- the number of the current record is modified: the current record corresponds to the record written.
- To update the indexes during a write operation, use HAdd or HModify.
HWrite is equivalent to HModify. The indexes on the database are updated.
- If a key value is modified with HWrite, the index will no longer be consistent. It must be re-indexed (HIndex).
- This function can be used to write a record into a selection performed by a query (query run with the hWithFilter constant).
// Write a record at the end of a data file
HWrite(Customer, HNbRec() + 1)
<Result> = HWrite([<Data file> [, <Record number> [, <Options>]]])
- True if the writing was performed in the data file,
- False if an error occurred (lock, ...): the record is not modified. 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, HWrite will use the last data file used by the last HFSQL management function (function starting with "H").
<Record number>: Optional integer
Number of the record to write. The record loaded in memory is re-written on the specified record.
If this number is greater than the total number of records in the data file, intermediate deleted records will be created in order for the sequential reading of the data file (HRead) to be consistent.
If this parameter is not specified (equal to 0 or to the hCurrentRecNum constant), HWrite modifies the current record in the data file.
modifies the current record only. You cannot specify a record number other than the current one (to specify the current record number, use the hRecNumCurrent
<Options>: Combination of optional constants
- the mode for calculating the automatic identifier: For more details on the management of an automatic identifier when adding a record, see Managing the automatic identifier during an addition.
|If the written record is not a deleted record, the automatic identifier (if it exists) of the record in the data file is re-used. |
If the written record is a deleted record, a new automatic identifier is calculated for the record.
The hWriteDefault constant is ignored if hWriteDefault is specified with one of the other constants.
|hSetIdAuto||The automatic identifier is not calculated during the write operation: The value of the identifier is the one stored during the write operation. |
The next value of the identifier calculated by the HFSQL engine will correspond to the greatest value of the identifier in the file +1.
|hForceIdAuto||The automatic identifier is not calculated during the write operation: The value of the identifier is the one stored during the write operation.|
|hRecalculateIdAuto||The automatic identifier of the record will be re-calculated during the write operation. This constant has priority over hForceIdAuto and hSetIdAuto.|
A WLanguage error is generated if the three constants (hForceIdAuto, hSetIdAuto and hRecalculateIdAuto) are used at the same time.
- the lock mode applied to the record.
If no lock constant is specified, the record is not locked.
|hLockWrite||Lock in write mode: the written record will be locked in write mode. This record can be read by another application but it cannot be modified by another application. Only the current application can modify it or unlock it.|
|hLockReadWrite||Lock in read/write: the written record will be locked in read/write. This record cannot be read or modified by another application. Only the current application can modify it, read it or unlock it.|
|No lock (even if HStartLock was used): the written record is not locked.|
Locks are managed only on HFSQL Client/Server data files or on data files handled by a Native Connector (also called Native Access). An HFSQL Mobile record cannot be locked. Indeed, the operating system of Pocket PC does not allow you to lock records.
Lock options will have no effect if the OLE DB provider or Native Connector (also called Native Access) does not support locks.
Managing automatic identifiers
By default, the "automatic identifier" item is automatically updated when a record is added into a data file.
The hForceIdAuto and hSetIdAuto constants are used to modify the default behavior of the automatic identifier.
See Managing the automatic identifier
for more details.
- If the database generates an automatic identifier, the HFSQL engine keeps this value. If the hForceIdAuto or hSetIdAuto constant is specified, the HFSQL engine replaces the generated value by the requested value.
Remark: the hForceIdAuto constant is equivalent to hSetIdAuto: the automatic identifier calculated by the HFSQL engine during the next addition will be unique in the data file.
- If no automatic identifier is generated by the database, the HFSQL engine generates the value and assigns it to the automatic identifier.
Managing the binary memos
When a record is modified, the memos are modified if necessary (if the management of memos is enabled by HSetMemo
: to initialize a binary memo item, use HLinkMemo
Browsing and writing a record
If the write operation is performed during a browse, the record written will be visible in the current browse only. If other browse operations have been defined on this database, the record written will only be visible once these browse operations have been re-initialized.
This page is also available for…