Třída Rowset
Instance třídy Rowset umožňují programátorovi přístup k záznamům získaným dotazováním databáze pomocí DynSQL. Instance se získávají voláním metody DynamicQuery.Rowsets nebo DynamicQuery.RowsetByName. Je nutné si uvědomit, že rowset prochází daty jednoprůchodově (není možné se vracet, je možné pouze načítat další a další záznamy). Pozor, veškeré nastavení vlastností je nutné nastavit před voláním metody DynamicQuery.Execute(). Po zavolaní této metody je už možné používat rowset pouze pro procházení a čtení záznamů.
Metody a vlastnosti:
Fields
property Fields[Index: Integer]: ResultFieldDescription readonly;
- Popis:
- Indexový přístup ke všem sloupcům definovaných v tomto rowsetu. Parametr Index musí nabývat platných hodnot od nuly do FieldCount-1 včetně. Pokud je hodnota v parametru Index platná, je vrácena instance objektu ResultFieldDescription, pokud je hodnota neplatná, je volána výjimka.
- Související metody:
- FieldCount, FieldByName
FieldCount
property FieldCount: Integer readonly;
- Popis:
- Počet všech sloupců v tomto rowsetu.
- Související metody:
- Fields, FieldByName
FieldByName
function FieldByName(const AName: WideString): ResultFieldDescription;
- Popis:
- Přístup k sloupcům přes jméno sloupce. Pokud sloupec s názvem AName existuje, bude vrácen objekt ResultFieldDescription, jinak je vyvolána výjimka.
- Související metody:
- Fields, FieldCount
FindField
function FindField(const AName: WideString): ResultFieldDescription;
- Popis:
- Dotaz na existující řazení. Pokud žádné neexistuje, funkce vrátí NULL.
- Související metody:
- Fields, FieldByName.
Used
property Used: WordBool;
- Popis:
- Každé DynSQL může definovat více jak jeden rowset (dataset). Téměř ve všech případech nechceme získávat data ze všech těchto rowsetů, protože to zvyšuje počet dotazů a následně zpomaluje procházení datasety. Pokud je hodnota nastavena na False, rowset nebude otevřen a nebude jej možné použít pro procházení a získávaní záznamů. Pokud rowset potřebujete, musíte nastavit Used = True a musíte specifikovat alespoň jeden sloupec do vlastnosti UsedFields. Základní hodnota je False. Pozor, rowset s názvem "MAIN" musí být vždy Used = True.
- Související metody:
- UsedFields
UsedFields
property UsedFields: WideString;
- Popis:
- Přidáním názvů sloupců do této property si určíte, jaké sloupce si přejete. Nastavení této vlastnosti je trochu zvláštní, řetězec musí obsahovat názvy sloupců (např. získaných z Fields) oddělených znaky CRLF (#13#10). Nastavením hodnoty se také mění vlastnost Used. Pokud zadáte prázdný řetězec, rowset se vypne (pozor na rowset "MAIN"). Pokud zadáte alespoň název jednoho sloupce, tak se nastaví Used na True.
- Související metody:
- Used
Name
property Name: WideString readonly;
- Popis:
- Název tohoto rowsetu získaný z DynSQL.
EOF
property EOF: WordBool readonly;
- Popis:
- EOF říká, zda je ještě možné získat další větu. Pokud hodnota EOF je rovna True, jste na konci rowsetu a není možné přečíst další větu voláním funkce Next(). Pokud rowset není připraven číst data (např. Used je False, nebo nebylo voláno DynamicQuery.Execute()), je vyvolána výjimka.
- Související metody:
- Next
Next
procedure Next;
- Popis:
- Voláním metody řekneme, že si přejeme načíst další větu. Pokud rowset není připraven číst data, je vyvolána výjimka. Před voláním je dobré si ověřit, zda je ještě možné číst voláním EOF().
- Související metody:
- EOF
Data
property Data: DataCollection readonly;
- Popis:
- Tato vlastnost zpřístupňuje jednotlivé hodnoty aktuální řádky v rowsetu. Vrácený objekt je kolekce. Jaké sloupce a hodnoty bude možné z kolekce získat, je závislé na nastavení vlastnosti UsedFields.