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 Übersicht | Member der Klasse | Hierarchiediagramm
Siehe auch&Nbsp;CRecordset::MoveNext, CRecordset::MovePrev, CRecordset::MoveFirst, CRecordset::MoveLast, CRecordset::SetAbsolutePosition, CRecordset::SetBookmark, CRecordset::IsBOF, CRecordset::IsEOF, CRecordset::CheckRowsetError