|
|
|
|
|
- Managing automatic identifiers
- Modifying the deleted or crossed records
- Modification conflict or deletion conflict
- Managing duplicates and integrity
- Version of the data file after a modification
- Managing binary memos
- Modifying a record selected in a query
- Modifying and looping through a record
- xBase
HModify (Function) In french: HModifie
Not available with this kind of connection
Modifies the specified record or the record found in memory in the data file (query or view). The indexes corresponding to all the keys used in the data file are automatically updated. The memos are added (if necessary) if the management of memos is enabled ( HSetMemo. After the call to HModify: - it is recommended to configure the management of errors:
It is advisable to check that no errors have been generated: Duplicate error, Integrity error, Password error, Modification conflict and Status error during modification conflict.. For more details, see HFSQL error handling help. - If the management of duplicates is enabled and if the data file contains a unique key, HErrorDuplicates returns True if the value of modified key is not unique. The record is not modified.
- 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 not available.
- the number of the current record is not modified. By default, the current iteration is not affected.
Note: This function can be used on a data file, an HFSQL view or a query. // Finds the record HReadSeekFirst(Customer, Name, "Smith") Â IF HFound() = True THEN // Modify a record in a data file // (record described through programming) Customer.FirstName = "Vince" Customer.City = "San Francisco" Customer.Zip = "94102" Customer.Country = "USA" HModify(Customer) END
// Modify current record of "Customer" // displayed in a window ScreenToFile() HModify(Customer)
Syntax
<Result> = HModify([<Data file> [, <Record number> [, <Options>]]])
<Result>: Boolean - True if the record was modified,
- False in case of problem (integrity error, duplicates, etc.): record is not modified. HError is used to identify the error.
<Data file>: Optional character string Name of data file, HFSQL view or query used. If this name is not specified, HModify 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 modify. 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), HModify will modify the current record in the data file.
CAUTION: Do not confuse the registration number with the automation identifier associated with theregistration. . In most cases, these two numbers are not identical. The record number is returned by HRecNum.
To use the <Options> parameter, <Record number> must necessarily be specified.
<Options>: Optional constant Configures:- the effect of modification on the current iteration,
- the mode for calculating the automatic identifier,
- the lock mode applied to the modified record. If no lock constant is specified, the modified record is unlocked.
The management of locks is not available.
- the management of duplicates,
- the management of integrity.
Note: To use this parameter, it is necessary to specify the <Record Number> parameter.
| | hAffectBrowse | Influence of modification on route: Modification assigns route. For example, HReadNext used after HModify positions on the record found after the modified record (while taking its new values into account).CAUTION: In all cases (constant hAffectCourse used or not): if function HModify is used in a browse and the browse item value is modified, the current record can be replayed in the rest of the path. Indeed, modifying the browse item updates the index key of the data file. This modification is taken into account when reading the next records.
The hAffectBrowse constant has priority over the hWriteDefault constant. | hCheckDuplicates | Duplicate management mode: Controls duplicates for this operation, even if duplicate control is switched off (function HSetDuplicates).. A WLanguage error occurs if the hIgnoreDuplicates and hCheckDuplicates constants are used at the same time.
| hCheckIntegrity | Integrity management mode: Controls operation integrity even if automatic integrity control is disconnected (function HSetIntegrity). A WLanguage error occurs if the hIgnoreIntegrity and hCheckIntegrity constants are used at the same time.
| hFalsifyTimestamp | Timestamp field management: By default, a timestamp field contains the date and time of record creation/modification, calculated automatically.. This constant prevents the timestamp field from being updated: the last value in the record will be retained. | hForceIDAuto | Automatic identifier calculation mode: The automatic identifier is not calculated when the automation is added.. The identifier corresponds to:- the value assigned to the item through programming (CUSTOMERID = 7 for example)
- the default identifier value specified in the data model editor (if the data file was just opened, with no record read)
- the identifier value found in memory (identifier value for the last record read in the data file).
Once the record is added, the next automatic identifier calculated by the HFSQL engine will be calculated while ignoring the value added by hForceIDAuto. A WLanguage error occurs if the hSetIDAuto and hForceIDAuto constants are used at the same time. | hIgnoreDuplicates | Duplicate management mode: Ignores duplicate control for this operation, even if automatic duplicate control is connected (function HSetDuplicates).. A WLanguage error occurs if the hIgnoreDuplicates and hCheckDuplicates constants are used at the same time.
| hIgnoreIntegrity | Integrity management mode: Ignores the integrity check on this add operation, even if the automatic integrity check is connected (function HSetIntegrity).. A WLanguage error occurs if the hIgnoreIntegrity and hCheckIntegrity constants are used at the same time.
| hLockNo (default value) | Lock mode for modified record: No lock: modified record will not be locked.
| hLockReadWrite | Modified record lock mode: Read/write lock: the modified record will be locked for reading and writing.. This record cannot be read or modified by another application. Only the current application can modify it, read it or unlock it.
| hLockWrite | Modified record lock mode: Lock in write mode: the modified 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.
| hRecalculateIDAuto | Automatic identifier calculation mode: The automatic identifier of the record will be re-calculated at the time of writing.. This constant has priority over hForceIDAuto and hSetIDAuto.
| hSetIDAuto | Automatic ID calculation mode The automatic identifier is not calculated at the time of addition: the identifier value will be that memorized at the time of addition. The next identifier value calculated by the HFSQL engine will correspond to the largest identifier value in the data file +1. A WLanguage error occurs if the hSetIDAuto and hForceIDAuto constants are used at the same time. | hWriteDefault (default value) | Influence of modification on route: Modification does not assign current route. For example, HReadNext used after HModify positions on the record found after the current record before the modification.
WARNING: If the HModify function is used in a browse and the browse item value is modified, the record in progress may be replayed in the rest of the route. Indeed, modifying the browse item updates the index key of the data file. This modification is taken into account when reading the next records.
The hAffectBrowse constant has priority over the hWriteDefault constant. |
Remarks Managing duplicates and integrity The integrity and duplicate checks are performed on the keys for which: - a check is enabled,
and - the value of the item is modified in relation to the record found in the data file.
Example:
... Customer.LastName = "TUBE" Customer.FirstName = "Milo" HAdd(Customer) Â Â // integrity and duplicate check performed on // LastName and FirstName if active management Customer.FirstName = "Mark" HModify(Customer) Â // integrity and duplicate check performed on // FirstName only if active management ...
Business / UI classification: Business Logic
This page is also available for…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|