Udostępnij za pośrednictwem


Zestaw rekordów: zakładki i położenia bezwzględne (ODBC)

Ten temat dotyczy klas MFC ODBC.

Podczas nawigowania po zestawie rekordów często potrzebny jest sposób powrotu do określonego rekordu. Zakładka rekordu i pozycja bezwzględna zapewniają dwie takie metody.

W tym temacie opisano:

Zakładki w MFC ODBC

Zakładka jednoznacznie identyfikuje rekord. Podczas przechodzenia przez zestaw rekordów nie zawsze można polegać na bezwzględnej pozycji rekordu, ponieważ rekordy można usunąć z zestawu rekordów. Niezawodnym sposobem śledzenia pozycji rekordu jest użycie jego zakładki. Klasa CRecordset dostarcza funkcje składowe dla:

  • Pobranie zakładki bieżącego rekordu w celu zapisania go w zmiennej (GetBookmark).

  • Szybkie przejście do danego rekordu przez określenie zakładki zapisanej wcześniej w zmiennej (SetBookmark).

W poniższym przykładzie pokazano, jak używać tych funkcji składowych do oznaczania bieżącego rekordu i późniejszego powrotu do niego:

// 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ębniać bazowego typu danych z obiektu KLASA CDBVariant. Przypisz wartość i GetBookmark wróć do tej zakładki za pomocą polecenia SetBookmark.

Uwaga

W zależności od typu sterownika ODBC i zestawu rekordów zakładki mogą nie być obsługiwane. Możesz ł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ć ich zaimplementowanie, określając CRecordset::useBookmarks opcję w funkcji CRecordset::Open elementu członkowskiego. Należy również sprawdzić trwałość zakładek po niektórych operacjach zestawu rekordów. Jeśli na przykład Requery zestaw rekordów zakładki nie będą już prawidłowe. Wywołaj metodę CDatabase::GetBookmarkPersistence , aby sprawdzić, czy można bezpiecznie wywołać metodę SetBookmark.

Pozycje bezwzględne w MFC ODBC

Oprócz zakładek klasa CRecordset umożliwia ustawienie bieżącego rekordu przez określenie położenia porządkowego. Jest to nazywane pozycjonowaniem bezwzględnym.

Uwaga

Pozycjonowanie bezwzględne nie jest dostępne w zestawach rekordów tylko do przodu. Aby uzyskać więcej informacji na temat zestawów rekordów tylko do przekazywania, zobacz Zestaw rekordów (ODBC).

Aby przenieść bieżący wskaźnik rekordu przy użyciu pozycji bezwzględnej, wywołaj metodę CRecordset::SetAbsolutePosition. Gdy przekazujesz wartość do SetAbsolutePosition, rekord odpowiadający tej pozycji porządkowej staje się bieżącym rekordem.

Uwaga

Bezwzględna pozycja rekordu jest potencjalnie zawodna. Jeśli użytkownik usunie rekordy z zestawu rekordów, pozycja porządkowa każdego kolejnego rekordu ulegnie zmianie. Zakładki to zalecana metoda przenoszenia bieżącego rekordu. Aby uzyskać więcej informacji, zobacz Zakładki w MFC ODBC.

Aby uzyskać więcej informacji na temat nawigacji zestawu rekordów, zobacz Zestaw rekordów: Przewijanie (ODBC).

Zobacz też

Zestaw rekordów (ODBC)