SetSoftSeek Function (Logic) | |
Return and optionally change the setting that determines whether a seek operation will find a close match when no exact match is found.
Namespace:
XSharp.Core
Assembly:
XSharp.Core (in XSharp.Core.dll) Version: 2.21
Syntax FUNCTION SetSoftSeek(
lNewSetting AS LOGIC
) AS LOGIC
public static bool SetSoftSeek(
bool lNewSetting
)
Request Example
View SourceParameters
- lNewSetting
- Type: Logic
TRUE moves the record pointer to the next record with a higher key after a failed order search; FALSE moves the record point to the end of the file after a failed order search.
The initial default is FALSE.
Return Value
Type:
Logic
If
lNewSetting is not specified, SetSoftSeek() returns the current setting.
If
lNewSetting is specified, the previous setting is returned.
Remarks
SetSoftSeek() enables relative seeking, a method of searching an order and returning a record even if there is no match for a specified key.
When TRUE is specified and a match for a seek operation (for example, the SEEK command or DBSeek() function) is not found, the record pointer is set to the next logical record with a higher key value than the seek argument. Records not visible (because of DBSetFilter(), SetDeleted(), or a conditional controlling order) are skipped when searching for the next higher key value.
If there is no record with a higher key value, the record pointer is positioned at LastRec() + 1, EOF() returns TRUE, and Found() returns FALSE. Found() returns TRUE only if the record is actually found.
It never returns TRUE for a relative find.
When FALSE is specified and a seek operation is unsuccessful, the record pointer is positioned at LastRec() + 1, EOF() returns TRUE, and Found() returns FALSE.
Examples
This example starts relative seeking at the beginning of a routine and stops it at the end of the routine:
1LOCAL lSSSetting AS LOGIC
2lSSSetting := SetSoftSeek(TRUE)
3SEEK UPPER("CarlM")
4? Found()
5? EOF()
6? cName
7SetSoftSeek(lSSSetting)
See Also