資料錄集:書籤和絕對位置 (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 Class 物件擷取基礎資料類型。 使用 指派 值 GetBookmark ,並使用 傳回至該書簽 SetBookmark

注意

根據您的 ODBC 驅動程式和記錄集類型,可能不支援書簽。 您可以呼叫 CRecordset::CanBookmark ,輕鬆地判斷是否支援 書簽。 此外,如果支援書簽,您必須在 CRecordset::Open 成員函式中 指定 CRecordset::useBookmarks 選項,明確地選擇實作書簽。 您也應該在特定記錄集作業之後檢查書簽的持續性。 例如,如果您 Requery 記錄集,書簽可能不再有效。 呼叫 CDatabase::GetBookmarkPersistence 來檢查您是否可以安全地呼叫 SetBookmark

MFC ODBC 中的絕對位置

除了書簽之外,類別 CRecordset 可讓您藉由指定序數位置來設定目前的記錄。 這稱為絕對位置。

注意

絕對位置不適用於正向記錄集。 如需僅限轉寄記錄集的詳細資訊,請參閱 Recordset (ODBC)

若要使用絕對位置移動目前記錄指標,請呼叫 CRecordset::SetAbsolutePosition 。 當您將值 SetAbsolutePosition 傳遞給 時,對應至該序數位置的記錄會變成目前的記錄。

注意

記錄的絕對位置可能不可靠。 如果使用者從記錄集刪除記錄,則任何後續記錄的序數位置會變更。 書簽是移動目前記錄的建議方法。 如需詳細資訊,請參閱 MFC ODBC 中的書簽。

如需記錄集導覽的詳細資訊,請參閱 Recordset:Scrolling (ODBC)

另請參閱

資料錄集 (ODBC)