_DBFind
(dim F : File;
KeyNr : Byte;
dim RefNr : LongInt;
KeyStr : String[MaxKeyLen]) : Byte
Hledá větu uživatelské databáze 'F' podle indexu
'KeyNr'. Hledaná věta je určena tvarem indexu 'KeyStr'. Jestliže exituje věta,
která má klíč 'KeyStr', vrací funkce True(1) a 'RefNr' naplní hodnotou
fyzického umístění věty. Takto nalezenou větu lze pak nahrát funkcí
_DBGet.
-
Pozor! Při tvorbě klíče 'KeyStr' je potřeba přihlédnout k tomu, jak jsou klíče
tvořeny v síťovém a nesíťovém prostředí. Věta uživatelské databáze má tuto
strukturu:
|
Attr(Word)
|
Ident(LongInt)
|
Vlastní uživatelská struktura(String)
|
|
klíč číslo 1
|
ostatní klíče
|
V nesíťové verzi je Ident konvertován do řetězcové formy klíče přímo programem.
V síťové verzi si řetězcový klíč tvoří až Btrieve server. Proto je potřeba pro
tvorbu klíče číslo 1 používat funkci _LIToKey, která
své vlastnosti mění podle verze programu:
a) síťová -/ posílá longint
b) nesíťová -/ posílá řetězec funkcí _ChrLI Ostatní
klíče jsou ukládány v rámci uživatelské struktury, což může být pouze řetězec.
Proto pro klíče jejichž číslo je vyšší než 1, je potřeba používat funkce
_StrPut, nebo podobné funkce _ChrLI, ...
-
Porovnání platnosti klíčů probíhá pouze v délce klíče 'KeyStr'.
Podívejte se na: Uživatelské databáze
Příklad:
if _DBFind(DBF, dbIdent, RefNr, _LIToKey(Ident)) then
...
if _DBFind(DBF, 2, RefNr, _StrPut(Ident)) then