Delete 方法 (ADO Recordset)
刪除目前的記錄或一組記錄。
語法
recordset.Delete AffectRecords
參數
AffectRecords
AffectEnum 值,其會決定 Delete 方法將影響多少個記錄。 預設值為 adAffectCurrent。
注意
adAffectAll 和 adAffectAllChapters 不是 Delete 的有效引數。
備註
使用 Delete 方法會標示 Recordset 物件中要刪除的目前記錄或一組記錄。 如果 Recordset 物件不允許刪除記錄,就會發生錯誤。 如果您處於立即更新模式,則會立即在資料庫中進行刪除。 如果無法成功刪除記錄 (例如,因為違反資料庫完整性),則記錄將在呼叫 Update 之後保持編輯模式。 這表示您必須先使用 CancelUpdate 來取消更新,然後再移出目前的記錄 (例如,使用 Close、Move 或 NextRecordset)。
如果您處於批次更新模式,就會將記錄標示為從快取中刪除,當您呼叫 UpdateBatch 方法時,就會實際刪除。 使用 Filter 屬性來檢視已刪除的記錄。
從已刪除的記錄擷取欄位值會產生錯誤。 刪除目前的記錄之後,已刪除的記錄會保持目前狀態,直到您前往其他記錄為止。 一旦您離開已刪除的記錄之後,就再也無法存取。
如果您在一個交易中巢狀設定刪除,即可使用 RollbackTrans (英文) 方法來復原已刪除的記錄。 如果您處於批次更新模式,則可使用 CancelBatch (英文) 方法來取消擱置刪除或擱置刪除群組。
例如,如果嘗試刪除記錄時因為與基礎資料發生衝突 (例如,另一位使用者已經刪除記錄) 而導致失敗,提供者會將警告傳回到 Errors (英文) 集合,但不會終止執行程式。 只有在所有要求的記錄發生衝突時,才會發生執行階段錯誤。
如果已設定唯一資料表 (英文) 動態屬性,且 Recordset 是在多個資料表上執行 JOIN 作業的結果,則 Delete 方法只會從唯一資料表 (英文) 屬性中具名的資料表刪除資料列。
套用至
另請參閱
Delete 方法範例 (VB)
Delete 方法範例 (VBScript)
Delete 方法範例 (VC++)
Delete 方法 (ADO Fields 集合)
Delete 方法 (ADO Parameters 集合)
DeleteRecord 方法 (ADO)