Lekce 1.25
Navigace v databázi


předchozí lekce (1.24) obsah kurzu následující lekce (1.26)

V předchozí lekci jsme si ukázali, jak listovat v databázi v databázovém okně. Nyní se seznámíme s obdobnými možnostmi přímo z programu.

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)

OZOGAN, 1 Máje 97, 460 01 Liberec
tel.,fax: (048) 52 28 338, e-mail: info@ozogan.cz