JetGetRecordSize 函式
適用于: Windows |Windows Server
JetGetRecordSize 函式
JetGetRecordSize函式會從所需的位置擷取記錄大小資訊。
Windows Vista:JetGetRecordSize 是在 Windows Vista 中引進。
JET_ERR JET_API JetGetRecordSize(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out JET_RECSIZE* precsize,
__in const JET_GRBIT grbit
);
參數
sesid
識別將用於 API 呼叫的資料庫會話內容。
tableid
識別將用於 API 呼叫的資料表或資料指標。 資料指標必須位於記錄上,或備妥更新。
precsize
JET_RECSIZE結構的輸出緩衝區指標。
grbit
這是下列一或多個值。
值 |
意義 |
---|---|
JET_bitRecordSizeInCopyBuffer |
這會擷取準備要更新之複製緩衝區中的記錄大小。 否則, tableid 或 cursor 必須位於記錄上,而且將會使用該記錄。 |
JET_bitRecordSizeRunningTotal |
指定此位時,在填滿內容之前, 不會將JET_RECSIZE 零,有效地做為已流覽或更新之多個記錄的統計資料累積。 |
JET_bitRecordSizeLocal |
這會導致 API 忽略非內建 Long 值。 例如,只會使用頁面上的本機記錄。 |
傳回值
此函式會傳回具有下列其中一個傳回碼 的 JET_ERR 資料類型。 如需可能 ESE 錯誤的詳細資訊,請參閱 可延伸儲存引擎錯誤 和 錯誤處理參數。
傳回碼 |
Description |
---|---|
JET_errSuccess |
作業已成功完成。 |
JET_errInvalidGrbit |
其中一個要求的選項無效或未實作。 當指定不合法的grbit時,JetGetRecordSize函式會傳回此錯誤。 |
JET_errNotInitialized |
無法完成作業,因為與會話相關聯的實例尚未初始化。 |
JET_errClientRequestToStopJetService |
無法完成作業,因為與會話相關聯之實例上的所有活動因 JetStopService呼叫而停止。 |
JET_errInstanceUnavailable |
無法完成作業,因為與會話相關聯的實例發生嚴重錯誤,需要撤銷所有資料的存取權,以保護該資料的完整性。 Windowsxp: JET_errInstanceUnavailable只會由 Windows XP 和更新版本傳回。 |
JET_errTermInProgress |
無法完成作業,因為與會話相關聯的實例正在關閉。 |
JET_errRestoreInProgress |
無法完成作業,因為與會話相關聯的實例上正在進行還原作業。 |
JET_errSessionSharingViolation |
從多個執行緒同時使用相同的會話不合法。 Windowsxp: JET_errInstanceUnavailable只會由 Windows XP 和更新版本傳回。 |
JET_errNoCurrentRecord |
如果游標定位不正確,就會發生這種情況。 |
JET_errRecordDeleted |
如果資料指標未置於交易中,當另一個執行緒從此會話下刪除記錄時,就可能發生此情況。 |
JET_errInvalidParameter |
如果傳遞 Null述詞 ,則可以傳回這個值。 |
備註
JET_RECSIZE cbOverhead 欄位中 累積的金鑰大小會受到JET_bitRecordSizeInCopyBuffer影響。 如果指定此位, 則 cbOverhead 欄位中累積的金鑰大小是完整的金鑰大小。 如果未使用此位,則累積的金鑰大小將不會包含因金鑰前置詞壓縮而儲存的任何大小。
規格需求
需求 | 值 |
---|---|
用戶端 |
需要 Windows Vista。 |
Server |
需要 Windows Server 2008。 |
標頭 |
在 Esent.h 中宣告。 |
程式庫 |
使用 ESENT.lib。 |
Dll |
需要ESENT.dll。 |