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ąć
Prześlij dalej jeden rekord lub jeden zestaw wierszy: wywołaj funkcję składową MoveNext .
Cofanie jednego rekordu lub jednego zestawu wierszy: wywołaj funkcję składową MovePrev .
Do pierwszego rekordu w zestawie rekordów: wywołaj funkcję składową MoveFirst .
Do ostatniego rekordu w zestawie rekordów lub do ostatniego zestawu wierszy: wywołaj funkcję składową MoveLast .
N rekordów względem bieżącej pozycji: wywołaj funkcję elementu członkowskiego Move .
Aby przetestować koniec lub początek zestawu rekordów
Czy przewijano ostatni rekord? Wywołaj funkcję składową IsEOF .
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)