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。 每個 Field 的 Status 屬性都可以用來判斷 Field 未新增、修改或刪除的原因。
新增、修改或刪除 Field 時遇到的許多問題類型都會透過 Status 屬性回報。 例如,如果使用者刪除 Field,則會將其標示為從 Fields 集合中刪除。 如果因為使用者嘗試刪除沒有權限的 Field,造成後續的 Update 傳回錯誤,則 Field 的 Status 會是 adFieldPermissionDenied 或 adFieldPendingDelete。 呼叫 CancelUpdate 方法會還原原始值,並將 Status 設定為 adFieldOK。
同樣地,Update 方法可能會因為新增 Field 並指定不適當的值,而傳回錯誤。 在此情況下,新的 Field 將會位於 Fields 集合中,且狀態可能是 adFieldPendingInsert 和 adFieldCantCreate (取決於提供者)。 您可以為新的 Field 提供適當的值,然後再次呼叫 Update。
Recordset 欄位狀態
在 Recordset 中,系統會在呼叫物件的 Update 方法之前,快取 Fields 集合中 Field 物件值的變更。 此時,如果變更 Field 值造成錯誤,OLE DB 就會引發錯誤:DB_E_ERRORSOCCURRED (2147749409)。 Fields 集合中造成錯誤的任何 Field 物件的 Status 屬性,都會包含描述問題原因的 FieldStatusEnum 值。