JetDelete 函式
適用于: Windows |Windows Server
JetDelete 函式
JetDelete函式會刪除資料庫資料表中的目前記錄。
JET_ERR JET_API JetDelete(
__in JET_SESID sesid,
__in JET_TABLEID tableid
);
參數
sesid
將用於 API 呼叫的資料庫會話內容。
tableid
資料庫資料表上的資料指標。 將會刪除目前的資料列。
傳回值
此函式會傳回具有下列其中一個傳回碼 的JET_ERR 資料類型。 如需可能 ESE 錯誤的詳細資訊,請參閱 可延伸的儲存引擎錯誤 和 錯誤處理參數。
傳回碼 |
Description |
---|---|
JET_errSuccess |
作業已成功完成。 |
JET_errCallbackFailed |
回呼函式以某種方式失敗。 例如,回呼函式中的存取違規會攔截並轉譯成JET_errCallbackFailed。 此錯誤只會由 Windows XP 和更新版本傳回。 |
JET_errClientRequestToStopJetService |
因為與會話相關聯的實例上的所有活動因為對 JetStopService的呼叫而停止,所以無法完成作業。 |
JET_errIllegalOperation |
tableid指定的資料指標不支援刪除。 請參閱<備註>一節。 |
JET_errInstanceUnavailable |
無法完成作業,因為與會話相關聯的實例發生嚴重錯誤,要求撤銷所有資料的存取權以保護該資料的完整性。 此錯誤只會由 Windows XP 和更新版本傳回。 |
JET_errNoCurrentRecord |
tableid指定的資料指標不在記錄上。 |
JET_errNotInitialized |
無法完成作業,因為與會話相關聯的實例尚未初始化。 |
JET_errRestoreInProgress |
因為與會話相關聯的實例上正在進行還原作業,所以無法完成作業。 |
JET_errPermissionDenied |
資料庫引擎沒有足夠的許可權可刪除記錄。 如果資料庫檔案是以唯讀存取權開啟,就可能發生此情況。 |
JET_errRollbackError |
更新緩衝區 (請參閱 JetPrepareUpdate) 存在,但無法復原對類型JET_coltypLongText和/或類型JET_coltypLongBinary資料行所做的所有變更。 |
JET_errSessionSharingViolation |
從多個執行緒同時使用相同的會話不合法。 此錯誤只會由 Windows XP 和更新版本傳回。 |
JET_errTermInProgress |
因為與會話相關聯的實例正在關閉,所以無法完成作業。 |
JET_errTransReadOnly |
交易是唯讀交易,不支援刪除。 |
JET_errVersionStoreOutOfMemory |
作業失敗,因為記憶體不足,無法保留有關更新的交易資訊。 |
JET_errWriteConflict |
另一個會話先前已鎖定記錄以進行更新。 此會話嘗試的更新將會失敗。 |
成功時,貨幣會留在下一筆記錄之前。 如果已刪除的記錄是資料表的最後一筆記錄,則貨幣會保留在資料表結尾 (,也就是在新的最後一筆記錄之後) 。 如果已刪除的記錄是資料表中唯一的記錄,則貨幣會設定為開頭。
適當的索引會自動更新。
如果使用 JetPrepareUpdate) 備妥更新 (,將會取消更新。 將會重設更新緩衝區。
失敗時,貨幣會保持不變。 如果已備妥更新 (請參閱 JetPrepareUpdate) ,可能會重設更新緩衝區。
備註
並非所有資料表都支援刪除資料列。 臨時表通常不支援刪除資料列。 刪除記錄可能會基於許多原因在臨時表上啟用,其中一些原因如下:
建立期間已指定JET_bitTTUpdatable。
如果已使用JET_bitTTScrollable或JET_bitTTIndexed建立大型臨時表,則可以支援刪除。 臨時表變成「大型」的臨界值目前為 64 KB,但未來版本可能會變更。
Windows XP 和更新版本。 JetDelete可以叫用回呼函式,包括JET_cbtypBeforeDelete和JET_cbtypAfterDelete。
請務必瞭解在單一交易內執行大量更新作業的影響。 每個資料庫更新都必須由版本存放區中的資料庫引擎追蹤。 版本存放區會保存資料庫中所有不同記錄或索引項目目的即時記錄,可供所有使用中的交易看到。 這些版本可用來支援資料庫引擎使用中的多重版本並行控制,以支援使用快照隔離的交易。 一旦資料庫引擎耗盡用來儲存這些版本的資源,它就無法再接受進一步的變更,直到某些交易結束以允許回收這些資源為止。 當引擎處於此狀態時,所有更新都會失敗,且JET_errVersionStoreOutOfMemory。 您可以使用 JetSetSystemParameter 與 JET_paramMaxVerPages 和 JET_paramGlobalMinVerPages來控制資料庫引擎可用的資源來儲存這些版本。
規格需求
需求 | 值 |
---|---|
用戶端 |
需要 Windows Vista、Windows XP 或 Windows 2000 專業版。 |
Server |
需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。 |
標頭 |
在 Esent.h 中宣告。 |
程式庫 |
使用 ESENT.lib。 |
Dll |
需要ESENT.dll。 |
另請參閱
JET_ERR
JET_SESID
JET_TABLEID
JetOpenTempTable
JetPrepareUpdate
系統參數