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(IntToStr(DbfRecNo)+ '/'+IntToStr(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∞):


Unit Dbf_1;
interface
implementation

begin
   ConsoleClear;
   ConsoleShow;
   If DbfUse('CENIK') then       {pokud se otev°ela databßze}
   begin
      DbfGoTop;                  {skok na zaΦßtek databßze}
      Writeln('ZaΦßtek databßze');
      While not DbfEof do        {dokud nenφ konec databßze}
      begin
         Write(IntToStr(DbfRecNo)+'/'+IntToStr(DbfReccount)+' ');
         Writeln(DbfReadStr('NAZEV'));
         {... dalÜφ akce se zßznamem}
         DbfSkip(1);             {skok na dalÜφ zßznam}
      end;
      Writeln('Konec databßze');
      DbfUse('');                {databßzi uzav°eme}
   end else
      ShowMessage('Databßzi nebylo mo₧nΘ otev°φt !');
   end;
end;
end.
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