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