Symbolleistenbefehl

virtuelle privatevoid Verschieben ( lange nRows, WORD wFetchType = SQL_FETCH_RELATIVE);
werfen ( CDBException, CMemoryException );

Parameter

nRows

Die Anzahl der Zeilen vorankommen oder rückwärts. Positive Werte verschieben nach vorne, gegen Ende des Recordset-Objekts. Negative Werte verschieben nach hinten, an den Anfang.

wFetchType

Bestimmt das Rowset, das Verschieben zu holen. Weitere Informationen finden Sie unter Hinweise.

Bemerkungen

Rufen Sie diese Memberfunktion um den aktuellen Datensatzzeiger innerhalb des Recordsets, vorwärts oder rückwärts bewegen. Wenn Sie einen Wert von 0 für nRowsübergeben, aktualisiert das Verschieben den aktuellen Datensatz; Endet jede aktuelle AddNew oder Edit -Modus und wird der aktuelle Datensatz Wert vor AddNew wiederherstellen Verschieben oder Bearbeiten aufgerufen wurde.

Hinweis&Nbsp;  Wenn Sie durch ein Recordset zu verschieben, können nicht gelöschte Datensätze übersprungen werden. Finden Sie unter die IsDeleted -Memberfunktion für details.

Verschieben verschiebt das Recordset nach Rowsets. Basierend auf den Werten für nRows und wFetchType, ruft das entsprechende Rowset und dann macht den ersten Datensatz in das Rowset des aktuellen Datensatzes. Wenn Sie gesammelte nicht implementiert haben, ist die Größe des Rowsets immer 1. Wenn einen Rowset abrufen, ruft Verschieben direkt die CheckRowsetError -Memberfunktion um etwaige Fehler infolge des Abruf zu behandeln.

Je nach den Werten, die Sie übergeben, entspricht bewegen andere CRecordset -Memberfunktionen. Insbesondere kann der Wert des wFetchType angegeben, eine Memberfunktion, die mehr intuitiv ist und häufig die bevorzugte Methode zum Verschieben des aktuellen Datensatzes.

Die folgende Tabelle enthält die möglichen Werte für wFetchType, das Rowset, das Verschieben zu holen auf der Grundlage von wFetchType und nRowsund entsprechende Memberfunktion entsprechend wFetchType.

wFetchType Abgerufenen rowset Entsprechende Member-Funktion
SQL_FETCH_RELATIVE (der Standardwert) Das Rowset ab der ersten Zeile im aktuellen Rowset nRows Zeile(n).
SQL_FETCH_NEXT Das nächste Rowset; nRows wird ignoriert. MoveNext
SQL_FETCH_PRIOR Das Rowset zurück; nRows wird ignoriert. MovePrev
SQL_FETCH_FIRST Das erste Rowset im Recordset; nRows wird ignoriert. MoveFirst
SQL_FETCH_LAST Die letzte vollständige Rowset im Recordset; nRows wird ignoriert. MoveLast
SQL_FETCH_ABSOLUTE Wenn nRows Gt; 0, das Rowset ab dem Beginn des Recordsets nRows Zeile(n). Wenn Zeile(n) nRows < 0, das Rowset ab nRows vom Ende des Recordset-Objekts. Wenn nRows = 0, dann Anfang der Datei (BOF) Bedingung zurückgegeben wird. SetAbsolutePosition
SQL_FETCH_BOOKMARK Das Rowset, beginnend mit der Zeile, deren Lesezeichenwert nRows entspricht. SetBookmark

Hinweis&Nbsp;  Für Foward-Recordsets ist Verschieben nur gültig mit dem Wert SQL_FETCH_NEXT für wFetchType.

Vorsicht&Nbsp;  Aufrufen Verschieben löst eine Ausnahme, wenn das Recordset keine Datensätze enthält. Um festzustellen, ob das Recordset Datensätze enthält, rufen Sie IsBOF und IsEOF.

Wenn Sie am Anfang oder Ende des Recordset (IsBOF oder IsEOF gibt ungleich null) gescrollt haben, wird zum Aufrufen einer Funktion Verschieben möglicherweise eine CDBExceptionausgelöst. Beispielsweise wenn IsEOF ungleich NULL zurückgibt und IsBOF nicht, dann MoveNext eine Ausnahme auslöst, aber MovePrev wird nicht.

Wenn Sie Verschieben aufrufen, während der aktuelle Datensatz wird aktualisiert oder hinzugefügt, die Updates werden ohne Warnung verloren.

Weitere Informationen zur Recordsetnavigation finden Sie unter Artikel Recordset: Scrollen (ODBC) und Recordset: Lesezeichen und Absolute Positionen (ODBC) im Visual C++ Programmer's Guide. Weitere Informationen über gesammelte finden Sie im Artikel Recordset: Abrufen von Datensätzen in einer Sammeloperation (ODBC) im Visual C++ Programmer's Guide. Weitere Informationen finden Sie in der ODBC API-Funktion SQLExtendedFetch in der ODBC SDK Programmer's Reference.

Beispiel

/ / Rs ist ein CRecordset oder ein / / CRecordset-abgeleitete Objekt

/ / Ändern Sie die Größe des Rowsets in 5
Rs.SetRowsetSize (5);

/ / Zum ersten Datensatz bewegen
/ / im Recordset
Rs.MoveFirst ();

/ / In der sechste Datensatz verschieben
Rs.(5) Bewegen;
/ / Andere gleichwertigen Möglichkeiten zum
/ / in der sechste Datensatz verschieben:
/ / Rs.Verschieben Sie (6, SQL_FETCH_ABSOLUTE);
/ / Rs.SetAbsolutePosition (6);
/ / In diesem Fall ist der sechste Datensatz
/ / der erste Datensatz in das nächste Rowset
/ / so auch äquivalent sind:
/ / Rs.Umzug (1, SQL_FETCH_NEXT);
/ / Rs.MoveNext)

CRecordset ÜbersichtMember der Klasse | Hierarchiediagramm

Siehe auch&Nbsp;CRecordset::MoveNext, CRecordset::MovePrev, CRecordset::MoveFirst, CRecordset::MoveLast, CRecordset::SetAbsolutePosition, CRecordset::SetBookmark, CRecordset::IsBOF, CRecordset::IsEOF, CRecordset::CheckRowsetError

Index