資料錄集:書籤和絕對位置 (ODBC)

本文件適用於 MFC ODBC 類別。

巡覽資料錄集時,您通常需要一個返回特定資料錄的方法。資料錄的書籤和絕對位置提供兩個這樣的方法。

這個主題說明:

  • 書籤的使用方式。

  • 使用絕對位置來設定目前資料錄的方式。

MFC ODBC 內的書籤

書籤可唯一識別某個資料錄。當您在資料錄集內巡覽時,無法永遠依賴資料錄的絕對位置,因為資料錄有可能已從資料錄集刪除。最可信賴的儲存資料錄位置方法是使用它的書籤。CRecordset 類別提供的成員函式,可以:

  • 取得目前資料錄的書籤,以便可將它儲存在變數中 GetBookmark

  • 指定您先前儲存在變數 (SetBookmark) 內的資料錄書籤,快速地移動到該資料錄。

下列範例示範了如何使用這些成員函式來標記目前資料錄,並於稍後返回:

// 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 );

您不需要從 CDBVariant 類別物件擷取基礎資料型別。使用 GetBookmark 以設定書籤值,並使用 SetBookmark 以返回該書籤。

注意事項注意事項

根據您的 ODBC 驅動程式和資料錄集類型而定,可能並未支援書籤。您可輕易藉由呼叫 CRecordset::CanBookmark 來決定是否有支援書籤。此外,若有支援書籤,您必須指定 CRecordset::Open 成員函式內的 CRecordset::useBookmarks 選項來明確地選擇實作書籤。您也應該在特定資料錄集作業之後檢查書籤的保存性 (Persistence)。例如,若您 Requery 資料錄集,書籤可能不再有效。請呼叫 CDatabase::GetBookmarkPersistence 以確認您是否能安全呼叫 SetBookmark

MFC ODBC 的絕對位置

除了書籤,CRecordset 類別還可讓您指定序號位置來設定目前資料錄。這可稱為絕對位置。

注意事項注意事項

在順向資料錄集中無法使用絕對位置。如需順向資料錄集的詳細資訊,請參閱資料錄集 (ODBC)

若要使用絕對位置移動目前的資料錄指標,請呼叫 CRecordset::SetAbsolutePosition。當您將一個值傳至 SetAbsolutePosition 時,相對於序號位置的資料錄會變成目前資料錄。

注意事項注意事項

資料錄的絕對位置具有潛在的不可信賴性。如果使用者刪除資料錄集的資料錄,則任何後續資料錄的序號位置都會改變。建議您在移動目前資料錄時使用書籤方法。如需詳細資訊,請參閱 MFC ODBC 的書籤。

如需資料錄集巡覽的詳細資訊,請參閱資料錄集:捲動 (ODBC)

請參閱

概念

資料錄集 (ODBC)