Recordset: Scrollen (ODBC)

Aktualisiert: November 2007

Dieses Thema bezieht sich auf die MFC-ODBC-Klassen.

Nachdem Sie ein Recordset geöffnet hatten, müssen Sie auf die Datensätze zugreifen, um ihren Wert anzuzeigen, Berechnungen durchzuführen, Berichte zu erstellen usw. Das Scrollen ermöglicht es Ihnen, innerhalb des Recordsets von Datensatz zu Datensatz zu wechseln.

In diesem Thema wird Folgendes erläutert:

  • Scrollen von einem Datensatz zum anderen

  • Wann Scrollen unterstützt wird

Scrollen von einem Datensatz zum anderen

Die CRecordset-Klasse stellt für das Scrollen innerhalb eines Recordsets die Move-Memberfunktionen bereit. Diese Funktionen verschieben den aktuellen Datensatz um eine bestimmte Anzahl Rowsets. Falls Sie das gesammelte Abrufen von Zeilen implementiert haben, verschiebt eine Move-Operation das Recordset um die Größe des Rowsets. Falls Sie das gesammelte Abrufen von Zeilen nicht implementiert haben, verschiebt jeder Aufruf einer Move-Funktion das Recordset um jeweils einen Datensatz. Weitere Informationen über das gesammelte Abrufen von Zeilen finden Sie unter Recordset: Abrufen von Datensätzen in einer Sammeloperation (ODBC).

Hinweis:

Beim Scrollen durch ein Recordset werden gelöschte Datensätze unter Umständen nicht übersprungen. Weitere Informationen hierzu finden Sie unter dem Thema IsDeleted-Memberfunktion.

Neben den Move-Funktionen enthält CRecordset Memberfunktionen, mit denen Sie feststellen können, ob Sie über das Ende oder den Anfang des Recordsets gescrollt haben.

Rufen Sie die CanScroll-Memberfunktion auf, um festzustellen, ob Scrollen im Recordset möglich ist.

So scrollen Sie

  1. Einen Datensatz oder ein Rowset vorwärts scrollen: Rufen Sie die MoveNext-Memberfunktion auf.

  2. Einen Datensatz oder ein Rowset rückwärts scrollen: Rufen Sie die MovePrev-Memberfunktion auf.

  3. Zum ersten Datensatz des Recordsets scrollen: Rufen Sie die MoveFirst-Memberfunktion auf.

  4. Zum letzten Datensatz des Recordsets oder zum letzten Rowset scrollen: Rufen Sie die MoveLast-Memberfunktion auf.

  5. N Datensätze relativ zur aktuellen Position scrollen: Rufen Sie die Move-Memberfunktion auf.

So überprüfen Sie, ob das Ende oder der Anfang des Recordsets erreicht ist

  1. Haben Sie über den letzten Datensatz hinaus gescrollt? Rufen Sie die IsEOF-Memberfunktion auf.

  2. Haben Sie (rückwärts) über den ersten Datensatz hinaus gescrollt? Rufen Sie die IsBOF-Memberfunktion auf.

Im folgenden Codebeispiel werden beim Scrollen in beiden Richtungen mithilfe von IsBOF und IsEOF die Grenzen eines Recordsets ermittelt.

// 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 gibt einen Wert ungleich 0 (null) zurück, wenn der Recordset hinter dem letzten Datensatz platziert wird. IsBOF gibt einen Wert ungleich 0 (null) zurück, wenn der Recordset vor dem ersten Datensatz (vor allen Datensätzen) platziert wird. In beiden Fällen gibt es keinen aktuellen Datensatz, der bearbeitet werden kann. Wenn Sie MovePrev aufrufen, während IsBOF bereits TRUE ist, oder wenn Sie MoveNext aufrufen, während IsEOF bereits TRUE ist, löst das Framework eine CDBException aus. Sie können mit IsBOF und IsEOF auch feststellen, ob ein Recordset leer ist.

Weitere Informationen zur Recordsetnavigation finden Sie unter Recordset: Lesezeichen und absolute Positionen (ODBC).

Wann Scrollen unterstützt wird

In seinem ursprünglichen Entwurf unterstützte SQL ausschließlich das Vorwärtsscrollen, aber ODBC erweitert diese Fähigkeiten. Inwieweit das Scrollen unterstützt wird, hängt von den ODBC-Treibern ab, mit denen die Anwendung ausgeführt wird, vom ODBC-API-Conformance-Level des Treibers und davon, ob die ODBC-Cursorbibliothek in den Speicher geladen ist. Weitere Informationen finden Sie unter ODBC und ODBC: Die ODBC-Cursorbibliothek.

Tipp:

Die Verwendung der Cursorbibliothek ist optional. Weitere Informationen finden Sie unter dem bUseCursorLib-Parameter und dwOptions-Parameter für CDatabase::Open.

Hinweis:

Im Unterschied zu den MFC-DAO-Klassen bieten die MFC-ODBC-Klassen keine Find-Funktionen zum Suchen des nächsten (oder vorherigen) Datensatzes, der die angegebenen Kriterien erfüllt.

Siehe auch

Konzepte

Recordset (ODBC)

Recordset: Filtern von Datensätzen (ODBC)

Referenz

CRecordset::CanScroll

CRecordset::CheckRowsetError