|
|
|
|
|
- Handling a crossed record
- Number of crossed records
- Version of data file
- Crossing a record from a query
- Special cases
- xBase data files
HCross (Function) In french: HRaye
 Available only with these kinds of connection
Crosses a record in a data file. The record is deleted logically and it can be retrieved if necessary. The following operations are performed: - the record becomes inactive. The data is stored (which is not the case when a record is deleted by HDelete).
- the indexes (corresponding to the record keys) are deleted from the index file.
- the memos associated with the record are stored.
This function can be used on the data files, the HFSQL Mobile views or the queries.
// Crosses the record #123 HCross(Customer, 123)
// Cross the customer orders HReadSeekFirst(ORDERS, CUSTNUM, ValCustNum) WHILE HFound() = True HCross() HReadNext() END
Syntax
<Result> = HCross([<Data file> [, <Record number> [, <Options>]]])
<Result>: Boolean - True if the record was crossed,
- False in case of error (blocked record, integrity problem, etc.). HErrorInfo returns more details.
<Data file>: Optional character string Name of HFSQL data file, query or view used. If this parameter is an empty string (""), HCross manipulates the last data file used by the last HFSQL function (function starting with "H"). <Record number>: Optional integer Number of the record to cross. If this parameter is not specified (equal to 0 or the constant hNumEnrEnCours), the current record will be scratched. <Options>: Optional constant Configures:- the lock mode applied to the crossed record. If no lock constant is specified, the crossed record is not locked.
| | hLockNo (default value) | No blocking: the scratched recording will not be blocked. | hLockReadWrite | Lock in read/write mode: the currently scratched record cannot be viewed or reactivated by another application. | hLockWrite | Lock in write mode: the currently scratched record can be read and consulted (function HRead) by another application, but cannot be reactivated by another application.. Only the current application can re-enable it. |
- the integrity management applied to the crossed record.
| | hCheckIntegrity | Checks the integrity for the operation, even if the automatic integrity check is disabled (HSetIntegrity). | hIgnoreIntegrity | Ignores the integrity check for this operation, even if the automatic integrity check is enabled (HSetIntegrity). |
A WLanguage error occurs if the two constants are used at the same time. These constants have no effect on the cascading deletion.
Remarks Handling a crossed record - A crossed record will not be read:
- nor by path functions: HFirst, HLast, HNext, HPrevious, HReadFirst, HReadLast, HReadNext, HReadPrevious, HForward, HBackward
- or search functions: HSeekFirst, HReadSeekFirst, HSeekLast, HReadSeekLast.
- A crossed record can be read by HRead.
- A crossed record can be re-enabled by HModify or HWrite.
- HState is used to find out the record status (active, crossed, deleted, etc.).
- The physical location of a crossed record can only be reused (by HAdd for example) after:
- the execution of HFree,
- a reindex (with compression) has been performed.
Number of crossed records HNbRec is used to find out the number of crossed records in the data file. Note: For compatibility with WEBDEV 1.5/WINDEV 5.5, it is also possible to find out the number of scratched records using the variable h.NbSup. Version of data file If HCross is successful, the data file version number is modified. This version number is returned by HVersion. Crossing a record from a query A record can be crossed: - in the query result.
- or directly in the data files manipulated by the query (constant HModifiesFile used in functions HExecuteQuery or HExecuteSQLQuery). In this case, the hWithFilter constant is automatically selected.
Regardless of how the query is executed (with or without the constant hWithFilterconstant), the HCross function can only be used on single-file requests. Caution: - Records cannot be crossed in a query that uses groups or aggregates.
- Integrity and duplicates are not managed by operations on multi-file queries: it is advisable to use transactions to avoid any problems.
Special cases - Blocking management:
If a lock problem occurs when "crossing" a record (attempt to cross a record locked in write mode for example), the record is not modified and HErrorLock returns True. - Managing the referential integrity
If the management of the referential integrity is enabled (HSetIntegrity) and if the integrity is not checked during the deletion, HCross is not run. HErrorIntegrity must be checked after HCross. - Deleted records
HCross must not be called on a record that was deleted beforehand.
This page is also available for…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|