Sada záznamů: Záložky a absolutní umístění (ODBC)
Toto téma se vztahuje na třídy MFC ODBC.
Při procházení sady záznamů často potřebujete způsob, jak se vrátit k určitému záznamu. Záložka záznamu a absolutní pozice poskytují dvě takové metody.
Toto téma vysvětluje:
Záložky v rozhraní MFC ODBC
Záložka jednoznačně identifikuje záznam. Při procházení sady záznamů nelze vždy spoléhat na absolutní pozici záznamu, protože záznamy lze ze sady záznamů odstranit. Spolehlivý způsob, jak sledovat pozici záznamu, je použít záložku. Třída CRecordset
dodává členské funkce pro:
Získání záložky aktuálního záznamu, abyste ho mohli uložit do proměnné (GetBookmark).
Rychlý přechod na daný záznam zadáním jeho záložky, kterou jste si uložili dříve v proměnné (SetBookmark).
Následující příklad ukazuje, jak pomocí těchto členských funkcí označit aktuální záznam a později se k němu vrátit:
// 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 );
Z objektu CDBVariant Class není nutné extrahovat podkladový datový typ. Přiřaďte hodnotu GetBookmark
s danou záložkou a vraťte se k této záložce pomocí SetBookmark
.
Poznámka:
V závislosti na typu ovladače ODBC a sady záznamů nemusí být záložky podporované. Můžete snadno určit, jestli jsou záložky podporovány voláním CRecordset::CanBookmark. Kromě toho, pokud jsou záložky podporovány, je nutné explicitně zvolit jejich implementaci zadáním CRecordset::useBookmarks
možnosti v CRecordset::Open členské funkce. Měli byste také zkontrolovat trvalost záložek po určitých operacích sady záznamů. Pokud jste například Requery
sadu záznamů, záložky už nemusí být platné. Zavolejte CDatabase::GetBookmarkPersistence a zkontrolujte, jestli můžete bezpečně volat SetBookmark
.
Absolutní pozice v rozhraní MFC ODBC
Kromě záložek umožňuje třída CRecordset
nastavit aktuální záznam zadáním pořadové pozice. Tomu se říká absolutní umístění.
Poznámka:
Absolutní umístění není k dispozici u sad záznamů pouze pro předávání. Další informace o sadách záznamů jen pro předávání naleznete v tématu Sada záznamů (ODBC).<
Pokud chcete přesunout aktuální ukazatel záznamu pomocí absolutní pozice, zavolejte CRecordset::SetAbsolutePosition. Když předáte hodnotu SetAbsolutePosition
, záznam odpovídající této pořadové pozici se stane aktuálním záznamem.
Poznámka:
Absolutní pozice záznamu je potenciálně nespolehlivý. Pokud uživatel odstraní záznamy ze sady záznamů, změní se pořadí všech následných záznamů. Záložky jsou doporučenou metodou pro přesun aktuálního záznamu. Další informace naleznete v tématu Záložky v rozhraní MFC ODBC.
Další informace o navigaci v sadě záznamů naleznete v tématu Sada záznamů: Posouvání (ODBC).