předchozí lekce (3.10) | obsah kurzu | následující lekce (3.12) |
DataTable.First; {skok na první záznam databáze}
DataTable.Next; {skok na následující záznam databáze}
DataTable.Prior; {skok na předchozí záznam databáze}
DataTable.Last; {skok na poslední záznam databáze}
Pro navigaci v databázi můžete použít také metody, které vycházejí ve svém
názvosloví z již známých příkazů pro obsluhu databází v databázovém okně (uvedeno
v syntaxi jazyka KLONDAIK):
DataTable.GoTop; {skok na první záznam databáze}
DataTable.Skip(1); {skok na následující záznam databáze}
DataTable.Skip(-1); {skok na předchozí záznam databáze}
DataTable.GoBottom; {skok na poslední záznam databáze}
Jak jste si jistě všimli, první způsob je výhodnější zejména pokud budete procházet
databázi po jednotlivém záznamu, kdy se použije metoda DataTable.Skip. Podobná
metoda je DataTable.MoveBy, která navíc vrací skutečný počet provedeného skoku. To
můžete využít například pro zjištění konce databáze. Pokud stojíte na posledním
záznamu a dáte DataTable.MoveBy(1), bude vrácena nulová hodnota.
Při procházení databáze v cyklu můžete použít metody DataTable.Bof (indikuje
začátek databáze) a DataTable.Eof (indikuje konec databáze). Pokud budete procházet
celou databází, můžete dočasně vypnout zobrazování dat komponentou DataGrid. Pro
vypnutí zobrazení použijte metodu DataTable.DisableControls, zobrazení se po
ukončení cyklu znovu aktivuje metodou DataTable.EnableControls:
Jazyk KLONDAIK:
procedure TForm.Button1Click(Sender: TObject);
Var rec: integer;
begin
rec := dataTable1.Recno; {uložíme číslo záznamu}
ConsoleClear; {vymažeme textový výstup}
DataTable1.DisableControls; {zakážeme zobrazování}
DataTable1.First; {skok na první záznam}
While not DataTable1.Eof do {do konce souboru}
begin
Writeln(DataTable1.ReadStr('NAZEV'));
DataTable1.Next; {skok na další záznam}
end;
DataTable1.Go(rec); {vrátíme se na původní záznam}
DataTable1.EnableControls; {povolíme zobrazování}
end;
Jazyk BONANZA:
Sub Button1Click(Sender)
rec = dataTable1.Recno 'uložíme číslo záznamu
ConsoleClear 'vymažeme textový výstup
DataTable1.DisableControls 'zakážeme zobrazování
DataTable1.First 'skok na první záznam
Do While not DataTable1.Eof 'do konce souboru
Writeln(DataTable1.ReadStr("NAZEV"))
DataTable1.Next 'skok na další záznam
Loop
DataTable1.Go(rec) 'vrátíme se na původní záznam
DataTable1.EnableControls 'povolíme zobrazování
End Sub
Jazyk JUKON:
function Button1Click(Sender)
{
rec = dataTable1.Recno; //uložíme číslo záznamu
ConsoleClear; //vymažeme textový výstup
DataTable1.DisableControls; //zakážeme zobrazování
DataTable1.First; //skok na první záznam
while (!DataTable1.Eof) //do konce souboru
{
Writeln(DataTable1.ReadStr('NAZEV'));
DataTable1.Next; //skok na další záznam
}
DataTable1.Go(rec); //vrátíme se na původní záznam
DataTable1.EnableControls; //povolíme zobrazování
}
V uvedeném příkladě jsme si nejprve uložili aktuální pozici v databázi a provedli skok
na první záznam. V cyklu až do posledního záznamu jsme potom prováděli akce s
každým záznamem. Na konci jsme provedli skok na původní pozici v databázi.
předchozí lekce (3.10) | obsah kurzu | následující lekce (3.12) |