|
|
|
|
|
- Handling a crossed record
- Number of crossed records
- Version of data file
- Crossing a record from a query
- Special cases
- xBase data files
<Source>.Cross (Function) In french: <Source>.Raye
 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 <Source>.Delete).
- 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.
Commande.LitRecherchePremier(NUMCLI, ValNumCli)
WHILE Commande.Trouve() = True
Commande.Raye()
Commande.LitSuivant()
END
Syntax
<Result> = <Source>.Crossed([<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.
<Source>: Type corresponding to the specified source Name of HFSQL data file, query or view used. <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: scratched recordings 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 <Source>.Read) 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.
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: <Source>.First, <Source>.Last, <Source>.Next, <Source>.Previous, <Source>.ReadFirst, <Source>.ReadLast, <Source>.ReadNext, <Source>.ReadPrevious, <Source>.Forward, <Source>.Backward
- or search functions: <Source>.SeekFirst, <Source>.ReadSeekFirst, <Source>.SeekLast, <Source>.ReadSeekLast.
- A crossed record can be read by <Source>.Read.
- A crossed record can be re-enabled by <Source>.Modify or <Source>.Write.
- <Source>.State is used to find out the record status (active, crossed, deleted, etc.).
- The physical location of a crossed record can only be reused (by <Source>.Add for example) after:
- the execution of <Source>.Free,
- a reindex (with compression) has been performed.
Number of crossed records <Source>.NbRec 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 <Source>.Cross is successful, the data file version number is modified. This version number is returned by <Source>.Version. 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 <Source>.ExecuteQuery or <Source>.ExecuteSQLQuery). In this case, the hWithFilter constant is automatically selected.
Regardless of how the query is executed (with or without the constant hWithFilterconstant), the <Source>.Cross 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 (<Connection variable>.SetIntegrity) and if the integrity is not checked during the deletion, <Source>.Cross is not run. HErrorIntegrity must be checked after <Source>.Cross. - Deleted records
<Source>.Cross must not be called on a record that was deleted beforehand.
This page is also available for…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|