- Generic search/Exact-match search
- Exact-match search in Access
- Performing a search on a composite key
- Search on an array item
- Search and filter
- Browsing the records corresponding to a condition
- The views and RPC on HFSQL
- Optimizing the browse operations
<Source>.ReadSeek (Function) In french: <Source>.LitRecherche
Not available with this kind of connection
Positions on the first file record whose value for a specific item is greater than or equal to a sought value (generic search). The record is read and the corresponding HFSQL variables are updated. In most cases, <Source>.ReadSeek is used to set the position in the data file to perform a browse loop among the records that correspond to a condition. <Source>.ReadNext is used to read the next record corresponding to the condition.Several cases may occur after the call to <Source>.ReadSeek: - a record corresponding to the condition was found, locked (if necessary) and loaded in memory: <Source>.Found returns True.
Locks are managed only on HFSQL Client/Server data files or on data files handled by a Native Connector. An HFSQL Mobile record cannot be locked. Indeed, the operating system of Pocket PC does not allow you to lock records.
Access by JDBC: The management of locks is not available for databases accessed by JDBC. - the data file is empty or there is no record corresponding to the condition: no reading is performed and <Source>.Out returns True.
This function can be used with the data files, HFSQL views or queries. Remarks: - By default, <Source>.ReadSeekFirst and <Source>.ReadSeekLast are used to perform exact-match searches.
- By default, <Source>.ReadSeek is used to perform a generic search on the character strings. This search is not a generic search on the integers, the reals, the dates, the currencies, ...
Versions 15 and later New in version 15 Versions 17 and later New in version 17 Versions 18 and later New in version 18 Remark: From version 19, HFSQL is the new name of HyperFileSQL. Versions 21 and later New in version 21
// Find the first record // for which the Customer name is MOORE Customer.ReadSeek(Name, "MOORE") IF Customer.Found() THEN Trace("Customer MOORE found") ELSE Trace("Customer MOORE not found") END
Syntax
<Result> = <Source>.ReadSeek(<Item> , <Sought value> [, <Options>])
<Result>: Boolean (optional) Corresponds to: - True if the sought record was found and read. The file buffer is loaded with the data of the record found. In this case, HError is set to 0 and <Source>.Found is set to True.
- False in the following cases:
- error while accessing the file (unable to read for example). HError returns an error code. HErrorInfo returns more details about the error. In this case, <Source>.Found cannot be used.
- the access to the file was performed but no record was found. In this case, HError is set to 0 and <Source>.Found is set to False.
Caution: In this case, the file buffer cannot be used.
<Source>: Type corresponding to the specified source Name of data file, HFSQL view or query used. <Item>: Character string (with or without quotes) Name of item on which the search will be performed. For an exact-match search, this parameter can correspond to a non-key item.
<Sought value>: Type corresponding to the value Value of sought item. <Options>: Optional constant (or combination of constants) Used to configure:- the lock mode applied to the sought record.
- the type of search performed.
| | hLockWrite | Lock in write mode: the record currently read can be read by another application but it cannot be modified by another application. The lock mode is ignored if a query is used. | hLockReadWrite | Lock in read/write: the record currently read cannot be read or modified by another application. The lock mode is ignored if a query is used.
| hLockNo | No lock (even if HStartLock was called): the record can be read or modified by another application during the reading.
| hIdentical | Exact-match search (see the Notes) A generic search is performed by default (constant not specified).
| hLimitParsing | | hKeepFilter | The filter implemented by <Source>.Filter will be taken into account, even if the search key is not optimized for the filter. Reminder: <Source>.Filter returns the search key optimized for the filter. Caution: in this case, performance issues may arise for large files.
| hNoRefresh | |
This page is also available for…
|
|
|