předchozí lekce (1.24) | obsah kurzu | následující lekce (1.26) |
Každý záznam v databázi je očíslován dle pořadí zápisu do databáze. První
záznam má proto pořadové číslo jedna, poslední zapsaný záznam má pořadové číslo
shodné s celkovým počtem záznamů v databázi. Číslo aktuálního záznamu včetně
celkového počtu záznamů v databázi je uveden ve spodní části databázového okna v
jeho stavovém řádku. Celkový počet záznamů databáze vrací funkce DbfReccount,
číslo aktuálního záznamu vrací funkce DbfRecNo. Pokud byste chtěli vypsat uvedený
zápis z programu, můžete použít následujícího zápisu:
Writeln(CStr(DbfRecNo)+"/"+CStr(DbfReccount))
Pokud potřebujete přejít na požadované číslo záznamu, můžete tak učinit voláním
procedury DbfGo, ve které uvedete jako parametr číslo požadovaného záznamu. Pro
přechod na první záznam databáze použijte volání procedury DbfGoTop. Skok na
konec databáze provedete procedurou DbfGoBottom. Jestliže budete chtít listovat v
databázi pouze po jednom záznamu, můžete použít volání procedury DbfSkip, ve
které uvedete jako parametr počet záznamů o které se má přesunout ukazatel v databázi.
Kladné číslo uvádí počet záznamů směrem na konec databáze, záporné číslo znamená
skok směrem na začátek databáze.
Pokud byste se pokoušeli přejít voláním procedury DbfSkip před první záznam bude
nastaven ukazatel databáze na první záznam databáze. Současně však bude nastaven
příznak začátku databáze, který je přístupný voláním funkce DbfBof. Obdobně, pokud byste
se pokoušeli provést skok v databázi za jeho konec, bude nastaven příznak konce
databáze, který je přístupný voláním funkce DbfEof. Využitím výše uvedených funkcí
můžete realizovat procházení databáze od jejího počátku na konec (nebo obráceně):
'program DBF_1.BPR
ConsoleClear
ConsoleShow
If DbfUse("CENIK") then 'pokud se otevřela databáze
DbfGoTop 'skok na začátek databáze
Writeln("***** Začátek databáze")
Do until DbfEof 'dokud není konec databáze
Write(IntToStr(DbfRecNo)+"/"+IntToStr(DbfReccount)+" ")
Writeln(DbfReadStr("NAZEV"))
'... další akce se záznamem
DbfSkip(1) 'skok na další záznam
loop
Writeln("***** Konec databáze")
DbfUse("")
else
ShowMessage("Databázi 'CENIK.DBF' nebylo možné otevřít !")
end if
Použitím výše uvedené kostry programu máte možnost zpracovávat jednotlivé
záznamy databáze. V následující lekci se proto již seznámíme s možnostmi přímého
zpracování databázových záznamů (čtení a záznam položek databáze).
předchozí lekce (1.24) | obsah kurzu | následující lekce (1.26) |