Udostępnij za pośrednictwem


CRecordset::Move

Przenosi bieżący wskaźnik rekordu w zestawie rekordów do przodu lub do tyłu.

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.

MoveNext

SQL_FETCH_PRIOR

Poprzedni zestaw wierszy; nRowsjest ignorowana.

MovePrev

SQL_FETCH_FIRST

Pierwszy zestaw wierszy w zestawie rekordów; nRowsjest ignorowana.

MoveFirst

SQL_FETCH_LAST

Ostatni pełny wierszy w zestawie rekordów; nRowsjest ignorowana.

MoveLast

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).

SetAbsolutePosition

SQL_FETCH_BOOKMARK

Zestaw wierszy, począwszy od wiersza, którego wartość zakładki odpowiada nRows.

SetBookmark

[!UWAGA]

Dla rekordów tylko przesyłanie dalej przenieść jest prawidłowa tylko z wartości SQL_FETCH_NEXT do wFetchType.

Informacje dotyczące przestrogiPrzestroga

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

Tej metody można zgłosić wyjątków typu CDBException * i CMemoryException*.

Przykład

// 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ż

Informacje

Klasa CRecordset

Wykres hierarchii

CRecordset::MoveNext

CRecordset::MovePrev

CRecordset::MoveFirst

CRecordset::MoveLast

CRecordset::SetAbsolutePosition

CRecordset::SetBookmark

CRecordset::IsBOF

CRecordset::IsEOF

CRecordset::CheckRowsetError