CRecordset::Move
Przenosi bieżący wskaźnik rekordu w zestawie rekordów do przodu lub do tyłu.
Składnia
virtual void Move(
long nRows,
WORD wFetchType = SQL_FETCH_RELATIVE
);
Parametry
nRows
Liczba wierszy, aby przejść do przodu lub do tyłu.Wartości dodatnie przesuwają się do przodu, do końca rekordów.Wartości ujemne przesuwają się do tyłu, do początku.wFetchType
Określa zestaw wierszy, przenieść spowoduje pobranie.Aby uzyskać szczegółowe informacje Zobacz uwagi.
Uwagi
Jeśli przekazać wartość 0 dla nRows, przenieść Odświeża bieżący rekord; Przenieść zostaną zakończone wszystkie bieżące AddNew lub Edytuj tryb i przywróci wartości bieżącego rekordu przed AddNew lub Edytuj została wywołana.
Uwaga
Podczas przenoszenia przez zestaw rekordów usuniętych rekordów nie można pominąć.Zobacz CRecordset::IsDeleted Aby uzyskać więcej informacji.Po otwarciu CRecordset z skipDeletedRecords zestaw opcji przenieść twierdzi, jeśli nRows parametr jest 0.To zachowanie zapobiega odświeżanie wierszy, które są usuwane przez inne aplikacje klienta przy użyciu tych samych danych.Zobacz dwOption parametr w Otwórz opis skipDeletedRecords.
Przenieść zmiana zestawu rekordów przez zestawów wierszy.Na podstawie wartości dla nRows i wFetchType, przenieść pobiera odpowiednie wierszy, a następnie wprowadza pierwszy rekord w tym zestawie wierszy bieżącego rekordu.Jeśli nie zaimplementowano pobieranie wiersza luzem, następnie rozmiar zestawu wierszy jest zawsze 1.Podczas pobierania wierszy, przenieść bezpośrednio wywołuje CheckRowsetError Członkowskich funkcji obsługi błędy wynikające z pobieraniem.
W zależności od wartości przekazać przenieść jest odpowiednikiem drugiej CRecordset funkcji elementów członkowskich.W szczególności wartość wFetchType może wskazywać funkcji składowej, który jest bardziej intuicyjna i często preferowana metoda przenoszenia bieżącego rekordu.
W poniższej tabeli przedstawiono możliwe wartości dla wFetchType, zestawu wierszy, przenieść fetch będzie oparte na wFetchType i nRowsi wszelkich funkcji równoważne Członkowskich odpowiadające wFetchType.
wFetchType |
Pobieranych wierszy. |
Funkcja Członkowskie równoważnych |
---|---|---|
SQL_FETCH_RELATIVE(wartość domyślna) |
Uruchamianie wierszy nRows wiersze z pierwszego wiersza w bieżącym zestawie wierszy. |
|
SQL_FETCH_NEXT |
Następny zestaw wierszy; nRowsjest ignorowana. |
|
SQL_FETCH_PRIOR |
Poprzedni zestaw wierszy; nRowsjest ignorowana. |
|
SQL_FETCH_FIRST |
Pierwszy zestaw wierszy w zestawie rekordów; nRowsjest ignorowana. |
|
SQL_FETCH_LAST |
Ostatni pełny wierszy w zestawie rekordów; nRowsjest ignorowana. |
|
SQL_FETCH_ABSOLUTE |
If nRows > 0 wierszy od nRows wiersze od początku zestawu rekordów.If nRows < 0 wierszy od nRows wiersze na końcu zestawu rekordów.Jeśli nRows = 0, to zwracana jest warunek początku pliku (BOF). |
|
SQL_FETCH_BOOKMARK |
Zestaw wierszy, począwszy od wiersza, którego wartość zakładki odpowiada nRows. |
Uwaga
Dla rekordów tylko przesyłanie dalej przenieść jest prawidłowa tylko z wartości SQL_FETCH_NEXT do wFetchType.
Ostrzeżenie
Wywołanie przenieść zgłasza wyjątek, jeśli zestaw rekordów nie zawiera żadnych rekordów.Aby ustalić, czy zestaw rekordów zawiera rekordy, call IsBOF i IsEOF.
Uwaga
Jeżeli przewiniesz w przeszłości początek lub koniec zestawu rekordów (IsBOF lub IsEOF zwraca wartość różną od zera), wywołujący przenieść prawdopodobnie wygeneruje funkcji CDBException.Na przykład jeśli IsEOF zwraca wartość różną od zera i IsBOF nie ma, następnie MoveNext wygeneruje wyjątek, ale MovePrev nie będzie.
Uwaga
Jeśli zadzwonisz przenieść podczas bieżącego rekordu zaktualizowane lub dodane, aktualizacje zostaną utracone bez ostrzeżenia.
Aby uzyskać więcej informacji na temat nawigacji zestawu rekordów, zobacz artykuły rekordów: przewijanie (ODBC) i rekordów: zakładki i pozycje bezwzględne (ODBC).Aby uzyskać więcej informacji na temat Pobieranie wiersza luzem, zobacz artykuł rekordów: pobieranie rekordów luzem (ODBC).Aby uzyskać pokrewne informacje, zobacz funkcji interfejsu API ODBC SQLExtendedFetch w Windows SDK.
Wyjątki
Exception
Condition
Tej metody można zgłosić wyjątków typu CDBException * i CMemoryException*.
// rs is a CRecordset or a CRecordset-derived object
// Change the rowset size to 5
rs.SetRowsetSize(5);
// Open the recordset
rs.Open(CRecordset::dynaset, NULL, CRecordset::useMultiRowFetch);
// Move to the first record in the recordset
rs.MoveFirst();
// Move to the sixth record
rs.Move(5);
// Other equivalent ways to move to the sixth record:
rs.Move(6, SQL_FETCH_ABSOLUTE);
rs.SetAbsolutePosition(6);
// In this case, the sixth record is the first record in the next rowset,
// so the following are also equivalent:
rs.MoveFirst();
rs.Move(1, SQL_FETCH_NEXT);
rs.MoveFirst();
rs.MoveNext();
Wymagania
Nagłówek: afxdb.h
Zobacz też
Klasa CRecordset
Diagram hierarchii
CRecordset::MoveNext
CRecordset::MovePrev
CRecordset::MoveFirst
CRecordset::MoveLast
CRecordset::SetAbsolutePosition
CRecordset::SetBookmark
CRecordset::IsBOF
CRecordset::IsEOF
CRecordset::CheckRowsetError