OrdWildSeek() Searches a value in the controlling index using wild card characters. Syntax : OrdWildSeek( <cWildCardString>,; [<lCurrentRec>] , ; [<lBackwards>] ) --> lFound Arguments : <cWildCardString> : This is a character string to search in the controlling index. It may include the wild card characters "?" and "*". The question mark matches a single character, while the asterisk matches one or more characters. <lCurrentRec> : This parameter defaults to .F. (false) causing OrdWildSeek() to begin the search with the first record included in the controlling index. When .T. (true) is passed, the function begins the search with the current record. <lBackwards> : If .T. (true) is passed, OrdWildSeek() searches <cWildCardString> towards the begin of file. The default value is .F. (false), i.e. the function searches towards the end of file. Return : The function returns .T. (true) if a record matching <cWildCardString> is found in the controlling index, otherwise .F. (false) is returned. Description : OrdWildSeek() searches a character string that may include wild card characters in the controlling index. This allows for collecting subsets of records based on an approximate search string. Records matching the search string are found in the controlling index, and the record pointer is positioned on the found record. When a matching record is found, the function Found() returns .T. (true) until the record pointer is moved again. In addition, both functions, BoF() and EoF() return .F. (false). If the searched value is not found, OrdWildSeek() positions the record pointer on the "ghost record" (Lastrec()+1), and the function Found() returns .F. (false), while Eof() returns .T. (true). The SET SOFTSEEK setting is ignored by OrdWildSeek(). Info : See also: DbSeek(), LOCATE, OrdFindRec(), OrdKeyGoto(), WildMatch() Category: Database functions, Index functions, extensions Example : // The example uses two wildcard search strings to show // possible search results of OrdWildSeek() PROCEDURE Main LOCAL aCust := {} USE Customer INDEX ON Upper(LastName) TO Cust01 DO WHILE OrdWildSeek( "*MAN?", .T. ) AAdd( aCust, FIELD->Lastname ) ENDDO AEval( aCust, {|c| QOut(c) } ) // Found records: // Dormann // Feldman GO TOP aCust := {} DO WHILE OrdWildSeek( "*EL*", .T. ) AAdd( aCust, FIELD->Lastname ) ENDDO AEval( aCust, {|c| QOut(c) } ) // Found records: // Feldman // Hellstrom // Keller // Reichel USE RETURN Note : Harbour has this function without documentation. This page borrowed from xHarbour and not tested. Please beware about Unicode.
Tag Archives: DBSEEK()
Using code blocks, again
C5 Index Commands and Functions
Index Commands and Functions
Commands :
DELETE TAG :
Delete a Tag
DELETE TAG <cOrderName> [IN <xcOrderBagName>] [, <cOrderName> [IN xcOrderBagName] list>]
INDEX ON … :
Create an index file
INDEX ON <expKey> [TAG <cOrderName>] TO <xcOrderBagName> [FOR <lCondition>] [ALL] [WHILE <lCondition>] [NEXT <nNumber>] [RECORD <nRecord>] [REST] [EVAL <bBlock> [EVERY <nInterval>] [UNIQUE] [ASCENDING|DESCENDING]
REINDEX :
Rebuild open indexes in the current workarea
REINDEX [EVAL <lCondition>] [EVERY <nRecords>]]
SET INDEX :
Open index file(s) in the current work area
SET INDEX TO [<xcIndex list>]
SET ORDER :
Set a new controlling index
SET ORDER TO [<nOrder> | [TAG <cOrderName>] [IN <xcOrderBagName>]]>
SET UNIQUE* :
Toggle the inclusion of nonunique keys into an index
SET UNIQUE on | OFF | <xlToggle>
Functions :
DBCLEARINDEX() :
Close all indexes for the current work area
DBCLEARINDEX() --> NIL
DBCREATEINDEX() :
Create an index file
DBCREATEINDEX( <cIndexName>, <cKeyExpr>, <bKeyExpr>, [<lUnique>] ) --> NIL
DBREINDEX() :
Recreate all active indexes for the current work area
DBREINDEX() --> NIL
DBSEEK() :
Move to the record having the specified key value
DBSEEK( <expKey>, [<lSoftSeek>] ) --> lFound
DBSETINDEX() :
Open an index for the current work area
DBSETINDEX( <cIndexName> ) --> NIL DBSETINDEX( <cOrderBagName> ) --> NIL
DBSETORDER() :
Set the controlling order for the current work area
DBSETORDER( <nOrderNum> ) --> NIL
DESCEND() :
Return a descending index key value
DESCEND( <exp> ) --> ValueInverted
FOUND() :
Determine if the previous search operation succeeded
FOUND() --> lSuccess
INDEXEXT() :
Return the default index extension
INDEXEXT() --> cExtension
INDEXKEY() :
Return the key expression of a specified index
INDEXKEY( <nOrder> ) --> cKeyExp
INDEXORD() :
Return the order position of the controlling index
INDEXORD() --> nOrder
ORDBAGEXT() :
Return the default Order Bag RDD extension
ORDBAGEXT() --> cBagExt
ORDBAGNAME() :
Return the Order Bag name of a specific Order
ORDBAGNAME(<nOrder> | <cOrderName>) --> cOrderBagName
ORDCOND()
Specify conditions for ordering
ORDCOND([FOR <lCondition>]
[ALL] [WHILE <;lCondition>] [EVAL <bBlock> [EVERY <nInterval>]] [RECORD <nRecord>] [NEXT <nNumber>] [REST] [DESCENDING])
ORDCONDSET()
Set the condition and scope for an order
ORDCONDSET([<cForCondition>], [<bForCondition>], [<lAll>], [<bWhileCondition>], [<bEval>], [<nInterval>], [<nStart>], [<nNext>], [<nRecord>], [<lRest>], [<lDescend>], [<lAdditive>], [<lCurrent>], [<lCustom>], [<lNoOptimize>]) --> lSuccess
ORDCREATE():
Create an Order in an Order Bag
ORDCREATE(<cOrderBagName>,[<cOrderName>], <cExpKey>,
[<bExpKey>], [<lUnique>]) --> NIL
ORDDESCEND()
Return and optionally change the descending flag of an order
ORDDESCEND([<cOrder> | <nPosition>],[<cIndexFile>], [<lNewDescend>]) --> lCurrentDescend
ORDDESTROY() :
Remove a specified Order from an Order Bag
ORDDESTROY(<cOrderName> [, <cOrderBagName> ]) --> NIL
ORDFOR() :
Return the FOR expression of an Order
ORDFOR(<cOrderName> | <nOrder> [, <cOrderBagName>]) --> cForExp
ORDISUNIQUE()
Return the status of the unique flag for a given order
ORDISUNIQUE([<cOrder> | <nPosition>], [<cIndexFile>]) --> lUnique
ORDKEY() :
Return the Key expression of an Order
ORDKEY(<cOrderName> | <nOrder> [, <cOrderBagName>]) --> cExpKey
ORDKEYADD()
Add a key to a custom built order
ORDKEYADD([<cOrder> | <nPosition>], [<cIndexFile>],[<expKeyValue>]) --> lSuccess
ORDKEYCOUNT()
Return the number of keys in an order
ORDKEYCOUNT([<cOrder> | <nPosition>], [<cIndexFile>]) --> nKeys
ORDKEYDEL()
Delete a key from a custom built order
ORDKEYDEL([<cOrder> | <nPosition>], [<cIndexFile>], [<expKeyValue>]) --> lSuccess
ORDKEYGOTO()
Move to a record specified by its logical record number
ORDKEYGOTO(<nKeyNo>) --> lSuccess
ORDKEYNO()
Get the logical record number of the current record
ORDKEYNO([<cOrder> | <nPosition>], [<cIndexFile>]) --> nKeyNo
ORDKEYVAL()
Get key value of the current record from controlling order
ORDKEYVAL() --> xKeyValue
ORDLISTADD() :
Add Order Bag contents or single Order to the Order List
ORDLISTADD(<cOrderBagName> [, <cOrderName>]) --> NIL
ORDLISTCLEAR() :
Clear the current Order List
ORDLISTCLEAR() --> NIL
ORDLISTREBUILD() :
Rebuild all Orders in the Order List of the current work area
ORDLISTREBUILD() --> NIL
ORDNAME() :
Return the name of an Order in the work area
ORDNAME(<nOrder>[,<cOrderBagName>]) --> cOrderName
ORDNUMBER() :
Return the position of an Order in the current Order List
ORDNUMBER(<cOrderName>[, <cOrderBagName>]) --> nOrderNo
ORDSCOPE()
Set or clear the boundaries for scoping key values
ORDSCOPE(<nScope>, [<expNewValue>]) --> uCurrentValue
ORDSETFOCUS() :
Set focus to an Order in an Order List
ORDSETFOCUS([<cOrderName> | <nOrder>] [,<cOrderBagName>]) --> cPrevOrderNameInFocus
ORDSETRELAT()
Relate a specified work area to the current work area
ORDSETRELATION(<nArea> | <cAlias>,<bKey>, [<cKey>])
--> NIL
ORDSKIPUNIQUE()
Move record pointer to the next or previous unique key
ORDSKIPUNIQUE([<nDirection>]) –> lSuccess
C5 Database Functions
AFIELDS() :
Fill arrays with the structure of the current database file
AFIELDS([<aFieldNames>], [<aTypes>], [<aWidths>], [<aDecimals>]) --> nFields
ALIAS() :
Return a specified work area alias
ALIAS([<nWorkArea>]) --> cAlias
BOF() :
Determine when beginning of file is encountered
BOF() --> lBoundary
DBAPPEND() :
Add a new record
DBAPPEND() --> NIL
DBCLEARFILTER() :
Clear a filter condition
DBCLEARFILTER() –> NIL
DBCLEARIND() : Close all indexes for the current work area
DBCLEARINDEX() --> NIL
DBCLEARREL() :
Clear active relations
DBCLEARRELATION() --> NIL
DBCLOSEALL() :
Close all occupied workareas
DBCLOSEALL() --> NIL
DBCLOSEAREA() :
Close a workarea
DBCLOSEAREA() --> NIL
DBCOMMIT() :
Flush pending updates
DBCOMMIT() --> NIL
DBCOMMITALL() :
Flush pending updates in all workareas
DBCOMMITALL() --> NIL
DBCREATE() :
Create a database file from a database structure array
DBCREATE(<cDatabase>, <aStruct> [, <cDriver> ] ) --> NIL
DBCREATEIND() :
Create an Index
DBCREATEINDEX(<cIndexName>, <cKeyExpr>, [<bKeyExpr>], [<lUnique>]) --> NIL
DBDELETE() :
Mark a record for deletion
DBDELETE() --> NIL
DBEDIT() :
Browse records in a table layout
DBEDIT([<nTop>], [<nLeft>], [<nBottom>], <nRight>], [<acColumns>], [<cUserFunction>], [<acColumnSayPictures> | <cColumnSayPicture>], [<acColumnHeaders> | <cColumnHeader>], [<acHeadingSeparators> | <cHeadingSeparator>], [<acColumnSeparators> | <cColumnSeparator>], [<acFootingSeparators> | <cFootingSeparator>], [<acColumnFootings> | <cColumnFooting>]) --> NIL
DBEVAL() :
Evaluate a code block for each record
DBEVAL(<bBlock>, [<bForCondition>], [<bWhileCondition>], [<nNextRecords>], [<nRecord>], [<lRest>]) --> NIL
DBF()* :
Return current alias name
DBF() --> cAlias
DBFIELDINFO() :
Return and optionally change information about a field
DBFIELDINFO(<nInfoType>,
<nFieldPos>, [<expNewSetting>]) --> uCurrentSetting
DBFILEGET() :
Insert the contents of a field into a file
DBFILEGET(<nFieldPos>, <cTargetFile>, <nMode>) --> lSuccess
DBFILEPUT() :
Insert the contents of a file into a field
DBFILEPUT(<nFieldPos>, <cSourceFile>) --> lSuccess
DBFILTER() :
Return the current filter expression as a character string
DBFILTER() --> cFilter
DBGOBOTTOM() :
Move to the last logical record
DBGOBOTTOM() --> NIL
DBGOTO() :
Move to a particular record
DBGOTO(<nRecordNumber>) --> NIL
DBGOTOP() :
Move to the first logical record
DBGOTOP() --> NIL
DBINFO() :
Return and optionally change database file information
DBINFO(<nInfoType>, [<expNewSetting>]) --> uCurrentSetting
DBORDERINFO() : Return and optionally change information about orders and index files
DBORDERINFO(<nInfoType>, [<cIndexFile>], [<cOrder> | <nPosition>], [<expNewSetting>]) --> uCurrentSetting
DBRECALL() :
Reinstate a record marked for deletion
DBRECALL() --> NIL
DBRECORDINFO() :
Return and optionally change information about a record
DBRECORDINFO(<nInfoType>, [<nRecord>], [<expNewSetting>]) --> uCurrentSetting
DBREINDEX() :
Recreate all active indexes for the current work area
DBREINDEX() --> NIL
DBRELATION() :
Return the linking expression of a specified relation
DBRELATION( <nRelation> ) --> cLinkExp
DBRLOCK() :
Lock the record at the current or specified identity
DBRLOCK([<xIdentity>]) --> lSuccess
DBRLOCKLIST() Return an array of the current lock list
DBRLOCKLIST() --> aRecordLocks
DBRSELECT() :
Return the target workarea number of a relation
DBRSELECT( <nRelation> ) --> nWorkArea
DBRUNLOCK()
Release all or specified record locks
DBRUNLOCK([<xIdentity>]) --> NIL
DBSEEK() :
Search for a key value
DBSEEK(<expKey>, [<lSoftSeek>]) --> lFound
DBSELECTAR() :
Change the current workarea
DBSELECTAREA(<nArea> | <cAlias>) --> NIL
DBSETDRIVER() :
Set the default database driver
DBSETDRIVER([<cDriver>]) --> cCurrentDriver
DBSETFILTER() :
Set a filter condition
DBSETFILTER(<bCondition>, [<cCondition>]) --> NIL
DBSETINDEX()
Empty orders from an order bag into the order list
DBSETINDEX(<cOrderBagName>) --> NIL
DBSETORDER()
Set the controlling order
DBSETORDER(<nOrderNum>) --> NIL
DBSETRELAT() :
Relate two workareas
DBSETRELATION( <nArea> | <cAlias>, <bExpr>, [<cExpr>]) --> NIL
DBSKIP() :
Move relative to the current record
DBSKIP([<nRecords>]) --> NIL
DBSTRUCT() :
Create an array containing the structure of a database file
DBSTRUCT() --> aStruct
DBUNLOCK()
Release all locks for the current work area
DBUNLOCK() --> NIL
DBUNLOCKALL()
Release all locks for all work areas
DBUNLOCKALL() --> NIL
DBUSEAREA() :
Use a database file in a workarea
DBUSEAREA( [<lNewArea>], [<cDriver>], <cName>, [<xcAlias>], [<lShared>], [<lReadonly>]) --> NIL
DELETED() :
Return the deleted status of the current record
DELETED() --> lDeleted
EOF() :
Determine when end of file is encountered
EOF() --> lBoundary
FCOUNT() :
Return the number of fields in the current (.dbf) file
FCOUNT() --> nFields
FIELD() :
Return a field name from the current (.dbf) file
FIELD/FIELD(<nPosition>) --> cFieldName
FIELDBLOCK() :
Return a set-get code block for a field variable
FIELDBLOCK(<cFieldName>) --> bFieldBlock
FIELDGET() :
Retrieve the value of a field using the ordinal position of the field in the database structure
FIELDGET(<nField>) --> ValueField
FIELDNAME() :
Return a field name from the current (.dbf) file
FIELDNAME/FIELD(<nPosition>) --> cFieldName
FIELDPOS() :
Return the position of a field in a workarea
FIELDPOS(<cFieldName>) --> nFieldPos
FIELDPUT() :
Set the value of a field variable using the ordinal position of the field in the database structure
FIELDPUT(<nField>, <expAssign>) --> ValueAssigned
FIELDWBLOCK() :
Return a set-get block for a field in a given workarea
FIELDWBLOCK(<cFieldName>, <nWorkArea>) --> bFieldWBlock
FLOCK() :
Lock an open and shared database file
FLOCK() –> lSuccess
FOUND() :
Determine if the previous search operation succeeded
FOUND() --> lSuccess
HEADER() :
Return the current database file header length
HEADER() --> nBytes
LASTREC() :
Determine the number of records in the current (.dbf) file
LASTREC() | RECCOUNT()* --> nRecords
LUPDATE() :
Return the last modification date of a (.dbf) file
LUPDATE() --> dModification
RECCOUNT()* :
Determine the number of records in the current (.dbf) file
RECCOUNT()* | LASTREC() --> nRecords
RECNO() :
Return the current record number of a work area
RECNO() --> nRecord
RECSIZE() :
Determine the record length of a database (.dbf) file
RECSIZE() --> nBytes
RLOCK()
Lock the current record in the active work area
RLOCK() --> lSuccess
SELECT() :
Determine the work area number of a specified alias
SELECT([<cAlias>]) --> nWorkArea
USED() :
Determine if a database file is in USE
USED() --> lDbfOpen