資料錄集:書籤和絕對位置 (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) 。