The
Record type is used to handle (modify, save, ...) the values of a record. This record can be a record found in a data file, a query or a view. The variable associated with the
Record type will be structured like a record of the database.
Usage example: This allows you to store in different variables the content of several records in order to compare them or to compare some items.
// CUSTOMER is a data file described in the analysis
CustomerRec is Record of CUSTOMER
HReadFirst(CUSTOMER, CUSTNUM)
IF NOT HOut() THEN
CustomerRec = CUSTOMER
// Display the last and first names of the customer
Info(CustomerRec.LASTNAME, CustomerRec.FIRSTNAME)
END
// CUSTOMER is a data file described in the analysis
CustomerRec is Record of CUSTOMER
CustomerRec.LastName = "MOORE"
CustomerRec.FirstName = "Paul"
CustomerRec.City = "PARIS"
// Assigns the content of the CustomerRec variable in the buffer of Customer data file
CUSTOMER = CustomerRec
HAdd(CUSTOMER)
// You have the ability to do: HAdd(CUSTOMER, CustomerRec)
Remarks
Declaring a Record variable
The following syntax is used to declare a Record variable:
<Variable name> is Record [of <Name of data file in the analysis>]
- If <Name of data file in the analysis> is specified, the record is associated with a description of one of the data files in the analysis. In this case, you have the ability to handle the different record items.
- If <Name of data file in the analysis> is not specified, the structure of the record will be built dynamically according to the buffer of the file allocated to it.
Accessing the items
To access the items of a Record variable, use the following syntax:
- To assign an item of the variable:
<Variable name>.<Item name> = <Value to assign>
- To retrieve the value of the items:
<Value> = <Variable name>.<Item name>
Remark: When using a record variable associated with a data file of the analysis, the code editor automatically proposes the different record items:
Reading and assigning a Record variable
A Record variable can be read or assigned. The syntax is as follows:
- To store the buffer of a data file in a Record variable:
<Name of Record variable> = <Name of data file>
- To assign the buffer of a data file from a Record variable:
<Name of data file> = <Name of Record variable>
Remark: Assigning a variable of type
Record to a data file modifies the
NewRecord property.
Special cases
- HRecordToString used on a Record variable returns a character string containing the value of each item separated by a TAB character.
- No compilation error occurs if a Record variable with type on a data file is assigned with the buffer of another data file. An homonymic copy of buffers is performed: only the items with the same name of each buffer will be assigned. The other items will be not assigned.
- Only JSON serialization is available for this type of variable (Serialize). No deserialization is possible.
Functions that handle the Record type
The following functions use the
Record type:
| |
HAdd | Adds: - the record found in memory into the data file (query or view).
- the record found in a Record variable into the data file (query or view).
|
HCopyRecord | Copies: - the content of the current record (loaded in memory) to the current data file record.
- the content of the Record variable to the current data file record.
|
HExtractMemo | Extracts the content of a binary memo item from an HFSQL file, a query or an HFSQL view to a physical file (on disk). |
HInfoMemo | Returns the characteristics of binary and text memos. |
HLinkMemo | Used to associate a file with a binary memo item or to cancel the existing link between a file and a binary item. |
HListItem | Returns the list of items:- found in a data file ( a query or a view) known to the HFSQL engine. The data files defined by HDeclare, HDeclareExternal and HDescribeFile are taken into account.
- found in a Record variable.
|
HRecordToString | Converts the content of the current record to string (in a data file, HFSQL view, query, etc.). |
HReset | Initializes: - one or all variables of file items with their default values.
- one or all items of a Record variable with their default values.
|
Remark: You can also use
VariableReset to reset the contents of a variable of type
Record.
Properties specific to Record variables
The following properties can be used to find out the characteristics of a Record variable:
| | |
Property name | Type used | Effect |
---|
AssociatedFile | Character string | Name of the HFSQL data file on which the variable is based. This property is read-only. |
Content | Character string | Content of the current record (identical to the result returned by HRecordToString). This property is read-only. |