Udostępnij za pośrednictwem


Zestaw rekordów: przewijanie (ODBC)

Ten temat dotyczy klas MFC ODBC.

Po otwarciu zestawu rekordów należy uzyskać dostęp do rekordów w celu wyświetlania wartości, wykonywania obliczeń, generowania raportów itd. Przewijanie umożliwia przejście z rekordu do rekordu w zestawie rekordów.

W tym temacie opisano:

Przewijanie z jednego rekordu do innego

Klasa CRecordset udostępnia Move funkcje składowe do przewijania w zestawie rekordów. Te funkcje przenoszą bieżący rekord według zestawów wierszy. Jeśli zaimplementowano pobieranie wierszy zbiorczych, Move operacja zmienia położenie zestawu rekordów według rozmiaru zestawu wierszy. Jeśli pobieranie wierszy zbiorczych nie zostało zaimplementowane, wywołanie Move funkcji zmienia położenie zestawu rekordów po jednym rekordzie za każdym razem. Aby uzyskać więcej informacji na temat zbiorczego pobierania wierszy, zobacz Zestaw rekordów: pobieranie rekordów zbiorczo (ODBC).

Uwaga

Podczas przechodzenia przez zestaw rekordów usunięte rekordy mogą nie zostać pominięte. Aby uzyskać więcej informacji, zobacz funkcję składową IsDeleted .

Oprócz Move funkcji, udostępnia funkcje składowe do sprawdzania, CRecordset czy przewijane obok końca, czy przed początkiem zestawu rekordów.

Aby określić, czy przewijanie jest możliwe w zestawie rekordów, wywołaj funkcję składową CanScroll .

Aby przewinąć

  1. Prześlij dalej jeden rekord lub jeden zestaw wierszy: wywołaj funkcję składową MoveNext .

  2. Cofanie jednego rekordu lub jednego zestawu wierszy: wywołaj funkcję składową MovePrev .

  3. Do pierwszego rekordu w zestawie rekordów: wywołaj funkcję składową MoveFirst .

  4. Do ostatniego rekordu w zestawie rekordów lub do ostatniego zestawu wierszy: wywołaj funkcję składową MoveLast .

  5. N rekordów względem bieżącej pozycji: wywołaj funkcję elementu członkowskiego Move .

Aby przetestować koniec lub początek zestawu rekordów

  1. Czy przewijano ostatni rekord? Wywołaj funkcję składową IsEOF .

  2. Czy przewijasz pierwszy rekord (przesuwając się do tyłu)? Wywołaj funkcję składową IsBOF .

Poniższy przykład kodu używa instrukcji IsBOF i IsEOF do wykrywania limitów zestawu rekordów podczas przewijania w obu kierunkach.

// 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 Zwraca wartość niezerową, jeśli zestaw rekordów jest umieszczony obok ostatniego rekordu. IsBOF Zwraca wartość niezerową, jeśli zestaw rekordów jest umieszczony przed pierwszym rekordem (przed wszystkimi rekordami). W obu przypadkach nie ma bieżącego rekordu do działania. Jeśli wywołasz metodę MovePrev , gdy IsBOF IsEOF wartość ma już wartość TRUE lub wywołasz MoveNext wartość TRUE, struktura zgłasza błąd CDBException. Możesz również użyć polecenia IsBOF i IsEOF sprawdzić, czy nie ma pustego zestawu rekordów.

Aby uzyskać więcej informacji na temat nawigacji zestawu rekordów, zobacz Zestaw rekordów: zakładki i pozycje bezwzględne (ODBC).

Gdy przewijanie jest obsługiwane

Zgodnie z założeniami język SQL zapewniał tylko przewijanie do przodu, ale funkcja ODBC rozszerza możliwości przewijania. Dostępny poziom obsługi przewijania zależy od sterowników ODBC, z których działa aplikacja, poziomu zgodności interfejsu API ODBC sterownika i tego, czy biblioteka kursorów ODBC jest ładowana do pamięci. Aby uzyskać więcej informacji, zobacz ODBC i ODBC: Biblioteka kursorów ODBC.

Napiwek

Możesz kontrolować, czy biblioteka kursorów jest używana. Zobacz parametry bUseCursorLib i dwOptions do CDatabase::Open.

Uwaga

W przeciwieństwie do klas MFC DAO klasy MFC ODBC nie zapewniają zestawu funkcji do lokalizowania następnego (lub poprzedniego) rekordu spełniającego Find określone kryteria.

Zobacz też

Zestaw rekordów (ODBC)
CRecordset::CanScroll
CRecordset::CheckRowsetError
Zestaw rekordów: filtrowanie rekordów (ODBC)