Sdílet prostřednictvím


Sada záznamů: Posouvání (ODBC)

Toto téma se vztahuje na třídy MFC ODBC.

Po otevření sady záznamů potřebujete získat přístup k záznamům, abyste mohli zobrazit hodnoty, provádět výpočty, generovat sestavy atd. Posouvání umožňuje přejít ze záznamu do záznamu v sadě záznamů.

Toto téma vysvětluje:

Posouvání z jednoho záznamu do druhého

Třída CRecordset poskytuje Move členské funkce pro posouvání v sadě záznamů. Tyto funkce přesunou aktuální záznam podle sad řádků. Pokud jste implementovali hromadné načítání řádků, Move operace přeloží sadu záznamů o velikosti sady řádků. Pokud jste neimplementovali hromadné načítání řádků, volání Move funkce pokaždé přeloží sadu záznamů o jeden záznam. Další informace o hromadném načítání řádků naleznete v tématu Sada záznamů: Načítání záznamů hromadně (ODBC).

Poznámka:

Při procházení sady záznamů nemusí být odstraněné záznamy vynechány. Další informace najdete v členské funkci IsDeleted .

Kromě Move funkcí poskytuje členské funkce pro kontrolu, CRecordset jestli jste se posouli na konec nebo před začátkem sady záznamů.

Pokud chcete zjistit, jestli je v sadě záznamů možné posouvání, zavolejte členovu CanScroll funkci.

Posouvání

  1. Přesměrovávat jeden záznam nebo jednu sadu řádků: volejte členské funkce MoveNext .

  2. Zpět jeden záznam nebo jedna sada řádků: volání členské funkce MovePrev .

  3. Na první záznam v sadě záznamů: zavolejte funkci Člen MoveFirst .

  4. K poslednímu záznamu v sadě záznamů nebo k poslední sadě řádků: volejte funkci člena MoveLast .

  5. N záznamů vzhledem k aktuální pozici: volejte funkci Přesunout člena.

Testování konce nebo začátku sady záznamů

  1. Posouli jste se za poslední záznam? Volání členské funkce IsEOF

  2. Posunovali jste se před prvním záznamem (pohyb dozadu)? Volání členské funkce IsBOF

Následující příklad kódu používá IsBOF a IsEOF k detekci limitů sady záznamů při posouvání v libovolném směru.

// 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, pokud je sada záznamů umístěna za poslední záznam. IsBOF vrátí nenulovou hodnotu, pokud je sada záznamů umístěna před prvním záznamem (před všemi záznamy). V obou případech neexistuje žádný aktuální záznam, na kterém by bylo potřeba pracovat. Pokud voláte MovePrev , pokud IsBOF je již PRAVDA nebo volání MoveNext , pokud IsEOF je již PRAVDA, architektura vyvolá CDBException. Můžete také použít IsBOF a IsEOF 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í pozice (ODBC).

Při podpoře posouvání

Jak bylo původně navrženo, SQL poskytuje pouze posouvání vpřed, ale ROZHRANÍ ODBC rozšiřuje možnosti posouvání. Dostupná úroveň podpory posouvání závisí na ovladačích ODBC, se kterými vaše aplikace pracuje, s úrovní shody rozhraní ODBC API ovladače a na tom, zda je knihovna kurzorů ODBC načtena do paměti. Další informace naleznete v tématu ODBC a ODBC: Knihovna kurzorů ODBC.

Tip

Můžete určit, jestli se používá knihovna kurzorů. Viz parametry bUseCursorLib a dwOptions na CDatabase::Open.

Poznámka:

Na rozdíl od tříd rozhraní MFC DAO neposkytuje třídy MFC ODBC sadu Find funkcí pro vyhledání dalšího (nebo předchozího) záznamu, který splňuje zadaná kritéria.

Viz také

Sada záznamů (ODBC)
CRecordset::CanScroll
CRecordset::CheckRowsetError
Sada záznamů: Filtrování záznamů (ODBC)