ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

This content has been translated automatically.  Click here  to view the French version.
Help / WLanguage / Managing databases / HFSQL / HFSQL functions
  • Managing automatic identifiers
  • Writing deleted or crossed records
  • Version of the data file after a write operation
  • Managing binary memos
  • If you use HWrite with a Hyper File 5.5 database
  • Browsing and writing a record
WINDEV
WindowsLinuxJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac Catalyst
Others
Stored procedures
HWrite (Function)
In french: HEcrit
ODBCNot 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:
  • integrity and 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 current record number is modified: the current record corresponds to the written record.
Remarks:
  • To update the indexes during a write operation, use HAdd or HModify.
    OLE DBNative Connectors (Native Accesses) HWrite and HModify are equivalent. 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 to a selection made by a query (query executed with constant hAvecFiltre only).
Example
// Écriture d'un enregistrement à la fin d'un fichier de données
HWrite(Client, HNbRec() + 1)
Syntax
<Result> = HWrite([<Data file> [, <Record number> [, <Options>]]])
<Result>: Boolean
  • True if the writing was performed in the data file,
  • False in case of error (blocking, ...): record is not modified. HError is used to identify the error.
<Data file>: Optional character string
Name of the data file used. If this name is not specified, HWrite will use the last data file used by the last HFSQL 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.
OLE DBNative Connectors (Native Accesses) HWrite 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 constant).
<Options>: Combination of optional constants
Configures:
  • automatic identifier calculation mode: For more details on automatic identifier management when adding a record, see Managing the automatic identifier during an addition.
    hForceIDAutoThe automation ID is not calculated at the time of writing: the ID value will be the one stored at the time of writing.
    hRecalculateIDAutoThe automatic identifier of the record will be re-calculated during the write operation. This constant has priority over hForceIDAuto and hSetIDAuto.
    hSetIDAutoThe automation ID is not calculated at the time of writing: the ID value will be that stored at the time of writing..
    The next value of the identifier calculated by the HFSQL engine will correspond to the greatest value of the identifier in the file +1.
    hWriteDefault
    (Default value)
    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.

    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.
    hLockNo
    (Default value)
    No blocking: the written record will not be blocked.
    hLockReadWriteLock in read/write mode: the written record will be locked in read and write mode.. This record cannot be read or modified by another application. Only the current application can modify it, read it or unlock it.
    hLockWriteLock 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.

OLE DBNative Connectors (Native Accesses) Lock options will have no effect if the OLE DB provider or Native Connector (also called Native Access) does not support locks.

Hyper File 5.5 <Options> is ignored.
Remarks

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.
For more details on automatic identifiers for new records, see Managing the automatic identifier.

OLE DBNative Connectors (Native Accesses) Special cases
  • 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 desired value.
    Remark: the constant hForceIDAuto is equivalent to hFixeIDAuto: the automatic identifier calculated by the HFSQL engine the next time a file is added 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.
WEBDEV - Server codeAjaxHFSQL ClassicHFSQL Client/ServerHyper File 5.5

Writing deleted or crossed records

If the record number corresponds to a crossed record or to a deleted record, this record is re-enabled.
WEBDEV - Server codeAjaxHFSQL ClassicHFSQL Client/ServerHyper File 5.5

Version of the data file after a write operation

If the record was written (no lock problem, etc.), the data file version number is modified. To get the version number, use HVersion.

Managing binary memos

When a record is modified, the memos are modified if necessary (if the management of memos is enabled by HSetMemo).
Reminder: to initialize a binary memo item, use function HLinkMemo.
WEBDEV - Server codeAjaxHyper File 5.5

If you use HWrite with a Hyper File 5.5 database

The TEXT items are automatically filled with space characters.
WEBDEV - Server codeNative Connectors (Native Accesses)

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 reinitialized.
Component: wd300hf.dll
Minimum version required
  • Version 9
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 09/20/2024

Send a report | Local help