Status 屬性 (ADO Field)

指出 Field 物件的狀態。

傳回值

傳回 FieldStatusEnum 值。 預設值為 adFieldOK

備註

記錄欄位狀態

Record 物件中,系統會在呼叫物件的 Update 方法之前,快取 Fields 集合中 Field 物件值的變更。 此時,如果變更 Field 值造成錯誤,OLE DB 就會引發錯誤:DB_E_ERRORSOCCURRED (2147749409)。 Fields 集合中造成錯誤的任何 Field 物件的 Status 屬性,都會包含描述問題原因的 FieldStatusEnum 值。

為了增強效能,系統會快取 Record 物件中 Fields 集合的新增和刪除項目,直到呼叫 Update 方法為止,然後在批次開放式更新中進行這些變更。 如果未呼叫 Update 方法,則不會更新伺服器。 如果有任何更新失敗,則會傳回 OLE DB 提供者錯誤 (DB_E_ERRORSOCCURRED),且 Status 屬性會指出作業和錯誤狀態碼的組合值。 例如 adFieldPendingInsert 或 adFieldPermissionDenied。 每個 FieldStatus 屬性都可以用來判斷 Field 未新增、修改或刪除的原因。

新增、修改或刪除 Field 時遇到的許多問題類型都會透過 Status 屬性回報。 例如,如果使用者刪除 Field,則會將其標示為從 Fields 集合中刪除。 如果因為使用者嘗試刪除沒有權限的 Field,造成後續的 Update 傳回錯誤,則 FieldStatus 會是 adFieldPermissionDenied 或 adFieldPendingDelete。 呼叫 CancelUpdate 方法會還原原始值,並將 Status 設定為 adFieldOK

同樣地,Update 方法可能會因為新增 Field 並指定不適當的值,而傳回錯誤。 在此情況下,新的 Field 將會位於 Fields 集合中,且狀態可能是 adFieldPendingInsertadFieldCantCreate (取決於提供者)。 您可以為新的 Field 提供適當的值,然後再次呼叫 Update

Recordset 欄位狀態

Recordset 中,系統會在呼叫物件的 Update 方法之前,快取 Fields 集合中 Field 物件值的變更。 此時,如果變更 Field 值造成錯誤,OLE DB 就會引發錯誤:DB_E_ERRORSOCCURRED (2147749409)。 Fields 集合中造成錯誤的任何 Field 物件的 Status 屬性,都會包含描述問題原因的 FieldStatusEnum 值。

套用至

Field 物件

另請參閱

Status 屬性範例 (Field) (VB)
Status 屬性範例 (VC++)