Zestaw rekordów: zakładki i położenia bezwzględne (ODBC)
Ten temat dotyczy klas MFC ODBC.
Podczas nawigacji po zestawie rekordów, często trzeba sposób powrotu do określonego rekordu.Zakładki i bezwzględne położenie rekordu udostępniają dwie takie metody.
Ten temat tłumaczy:
Jak używać zakładek.
Jak ustawić bieżący rekord za pomocą pozycji absolutnej.
Zakładki w MFC ODBC
Zakładka jednoznacznie identyfikuje rekord.Podczas nawigacji po zestawie rekordów nie można zawsze liczyć na położenie bezwzględne rekordu, ponieważ rekordy mogą być usunięte z zestawu rekordów.Niezawodny sposób, aby śledzić położenie rekordu jest użycie jego zakładkę.Klasa CRecordset dostarcza funkcji elementów członkowskich dla:
Uzyskanie zakładki bieżącego rekordu, więc można go zapisać w zmiennej (GetBookmark).
Szybkie przenoszenie do danego rekordu przez określenie jego zakładkę, który zapisano wcześniej w zmiennej (SetBookmark).
Poniższy przykład ilustruje sposób użycia tych funkcji elementów członkowskich do Oznacz bieżący rekord, a później wrócić do niej:
// rs is a CRecordset or
// CRecordset-derived object
CDBVariant varRecordToReturnTo;
rs.GetBookmark( varRecordToReturnTo );
// More code in which you
// move to other records
rs.SetBookmark( varRecordToReturnTo );
Nie trzeba wyodrębnić odpowiedniego typu danych z Klasa CDBVariant obiektu.Przypisz wartość z GetBookmark i powrócić do tej zakładki z SetBookmark.
[!UWAGA]
W zależności od sterownika ODBC i typ zestawu rekordów zakładki mogą nie być obsługiwane.Można łatwo określić, czy zakładki są obsługiwane przez wywołanie CRecordset::CanBookmark.Ponadto, jeśli zakładki są obsługiwane, należy jawnie wybrać do ich wykonania, określając CRecordset::useBookmarks opcji w CRecordset::Open funkcji składowej.Należy także sprawdzić trwałość zakładek po pewnych operacji zestawu rekordów.Na przykład jeśli zostanie Requery zestaw rekordów, zakładki mogą nie być już prawidłowe.Wywołanie CDatabase::GetBookmarkPersistence do sprawdzania, czy można bezpiecznie wywołać SetBookmark.
Pozycje bezwzględne ODBC MFC
Oprócz zakładki, klasa CRecordset można ustawić przez określenie pozycji porządkowej bieżącego rekordu.Nazywa się to pozycjonowanie bezwzględne.
[!UWAGA]
Pozycjonowanie bezwzględne nie jest dostępny na Progresywne zestawy rekordów.Aby uzyskać więcej informacji na temat Progresywne zestawy rekordów, zobacz Zestaw rekordów (ODBC).
Przesuwania wskaźnika bieżącego rekordu przy użyciu położenie bezwzględne, call CRecordset::SetAbsolutePosition.Podczas przekazywania wartości do SetAbsolutePosition, rekordem odpowiadającym, że pozycja porządkowa staje się rekordem bieżącym.
[!UWAGA]
Bezwzględne położenie rekordu jest potencjalnie zawodne.Jeśli użytkownik usuwa rekordy z numerem porządkowym wszelkie zmiany kolejnych rekord tego zestawu rekordów.Zakładki są zalecaną metodą przenoszenia bieżącego rekordu.Aby uzyskać więcej informacji, zobacz zakładek w MFC ODBC.
Aby uzyskać więcej informacji na temat nawigacji zestawu rekordów, zobacz Zestaw rekordów: przewijanie (ODBC).