V makrojazyku lze vytvářet tzv "uživatelské databáze". Jedná se o klasické databáze s proměnlivou délkou věty, jejichž jednou větou je řetězec dlouhý maximálně 255 znaků. Při zakládání databáze lze volit počet a délku indexů.
a) Příklad věty: ¸-------------------------------------------
| Index 1 | Index 2 | položky věty |
-------------------------------------------¶
^1 ^6
b) Otevření databáze: DBRewrite(F, FileName, 1,5, 6,7);
DBOpen(F, FileName, 1,5, 6,7);
dim Record : String
dim LI : LongInt
dim B : Byte
dim W : Word
dim S5 : String[5]
....
Record := _Chr(B)+_ChrLI(LI)+_RightSP(S5,5)+_ChrW(W)+ položky věty;
DBAdd(F, Record)
....
....
StrPut(Record, B, LI, S5, W, ...)
DBAdd(F, Record)
....
-----------------------------------------------------------------
|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, ...
Podívejte se na: Procedury a funkce pro uživatelské databáze