Sada záznamů: Procházení (ODBC)
Toto téma platí pro třídy knihovny MFC rozhraní ODBC.
Po otevření sady záznamů, potřebujete přístup k záznamům pro zobrazení hodnot, provádět výpočty, generovat sestavy atd. Posouvání vám umožňuje přechod z jednoho záznamu na druhý v rámci vaší sady záznamů.
Toto téma vysvětluje:
Jak přejít z jednoho záznamu na jiný v sadě záznamů.
Za jakých okolností je a není podporováno procházení.
Posouvání z jednoho záznamu na jiný
Třída CRecordset poskytuje členskou funkci Move pro posouvání v rámci sady záznamů. Tyto funkce přesunou aktuální záznam sad řádků. Pokud jste implementovali hromadné načítání řádků, přemístí operace Move sadu záznamů podle velikosti sady řádku. Pokud jste neimplementovali hromadné načítání řádků, volání funkce Move přemístí sadu záznamů pokaždé podle jednoho záznamu. Další informace o hromadném načítání řádku, naleznete v tématu Sada záznamů: Hromadné načítání záznamů (rozhraní ODBC).
Poznámka
Při procházení sadou záznamů nemusí být odstraněné záznamy přeskočeny. Pro další informace si prohlédněte členskou funkci IsDeleted.
Vedle funkcí Move, poskytuje CRecordset členské funkce, pro kontrolu, zda jste přešli za konec nebo před začátek vaší sady záznamů.
Chcete-li zjistit, zda je možné ve vaší sadě záznamů posouvání, zavolejte členskou funkci CanScroll.
Posun
Posunutí vpřed jednoho záznamu nebo jedné sady řádků: Zavolejte členskou funkci MoveNext.
Posunutí vzad jednoho záznamu nebo jedné sady řádků: Zavolejte členskou funkciMovePrev.
Na první záznam v sadě záznamů: Zavolejte členskou funkci MoveFirst.
Na poslední záznam v sadě záznamů nebo na poslední sadu řádků: Zavolejte členskou funkci MoveLast.
N záznamy, relativní k aktuální pozici: Zavolejte členskou funkci Move.
Chcete-li testovat konec nebo začátek sady záznamů
Přesunuli jste se na poslední záznam? Zavolejte členskou funkci IsEOF.
Přesunuli jste se vpřed k prvnímu záznamu (přesunutí zpět)? Zavolejte členskou funkci IsBOF.
Následující příklad kódu používá IsBOF a IsEOF k rozpoznání mezí sady záznamů při posouvání v obou směrech.
// Open a recordset; first record is current
CCustSet rsCustSet( NULL );
rsCustSet.Open( );
if( rsCustSet.IsBOF( ) )
return;
// The recordset is empty
// Scroll to the end of the recordset, past
// the last record, so no record is current
while ( !rsCustSet.IsEOF( ) )
rsCustSet.MoveNext( );
// Move to the last record
rsCustSet.MoveLast( );
// Scroll to beginning of the recordset, before
// the first record, so no record is current
while( !rsCustSet.IsBOF( ) )
rsCustSet.MovePrev( );
// First record is current again
rsCustSet.MoveFirst( );
IsEOF vrátí nenulovou hodnotu, je-li sada záznamů umístěna za posledním záznamem. IsBOF vrátí nenulovou hodnotu, je-li sada záznamů umístěna před prvním záznamem (před všemi záznamy). V obou případech neexistuje aktuální záznam, se kterým se může pracovat. Pokud zavoláte MovePrev, když je již IsBOF True nebo zavoláte MoveNext, když je již IsEOF True, vyvolá architektura CDBException. Můžete také použít IsBOF a IsEOF, chcete-li zkontrolovat prázdnou sadu záznamů.
Další informace o navigaci v sadě záznamů naleznete v tématu Sada záznamů: Záložky a absolutní umístění (ODBC).
Když je posouvání podporováno
Jak je původně navrženo, poskytuje SQL pouze dopředné posouvání, ale rozhraní ODBC rozšiřuje možnosti posouvání. Úroveň podpory pro posouvání závisí na ovladačích rozhraní ODBC, se kterými pracuje vaše aplikace, úroveň shody ovladače rozhraní ODBC API a zda je načtena knihovna kurzorů rozhraní ODBC do paměti. Další informace naleznete v tématu ODBC a ODBC: Knihovna kurzorů rozhraní ODBC.
Tip
Můžete určit, zda je použita Knihovna kurzorů. Viz parametry bUseCursorLib a dwOptions CDatabase::Open.
Poznámka
Na rozdíl od tříd knihovny MFC rozhraní DAO, neposkytují třídy knihovny MFC rozhraní ODBC sadu funkcí Find pro hledání dalšího (nebo předchozího) záznamu, splňujícího zadaná kritéria.