Status 属性(ADO 字段)

指示 Field 对象的状态。

返回值

返回 FieldStatusEnum 值。 默认值为 adFieldOK。

备注

Record 字段状态

在调用对象的 Update 方法之前,将缓存对 Record 对象的 Fields 集合中 Field 对象的值所做的更改。 此时,如果对 Field 的值的更改导致了错误,OLE DB 将引发错误 DB_E_ERRORSOCCURRED (2147749409)。 导致了错误的 Fields 集合中任何 Field 对象的 Status 属性将包含来自 FieldStatusEnum 的一个值,描述问题的原因。

为了提高性能,在调用 Update 方法之前,将缓存对 Record 对象的 Fields 集合的添加和删除,然后在批量乐观更新中进行更改。 如果没有调用 Update 方法,服务器就不会更新。 如果有任何更新失败,会返回 OLE DB 提供程序错误 (DB_E_ERRORSOCCURRED),并且 Status 属性指示操作和错误状态代码的组合值。 例如,adFieldPendingInsert OR adFieldPermissionDenied。 每个 Field 的 Status 属性可用于确定未添加、修改或删除 Field 的原因。

在添加、修改或删除 Field 时遇到的许多类型的问题都会通过 Status 属性来报告。 例如,如果用户删除了一个 Field,它就被标记为从 Fields 集合中删除。 如果由于用户尝试删除他们没有权限的 Field 而导致后续 Update 返回错误,则 Field 的 Status 将为 adFieldPermissionDenied OR adFieldPendingDelete。 调用 CancelUpdate 方法可还原原始值,并将 Status 设置为 adFieldOK。

同样,Update 方法可能会返回错误,因为添加了一个新的 Field 并给定了不适当的值。 在这种情况下,新的 Field 将位于 Fields 集合中,并且其状态是 adFieldPendingInsert,也可能是 adFieldCantCreate(具体取决于提供程序)。 可以为新的 Field 提供一个适当的值,然后再次调用 Update。

Recordset 字段状态

在调用对象的 Update 方法之前,将缓存对 Recordset 的 Fields 集合中 Field 对象的值所做的更改。 此时,如果对 Field 的值的更改导致了错误,OLE DB 将引发错误 DB_E_ERRORSOCCURRED (2147749409)。 导致了错误的 Fields 集合中任何 Field 对象的 Status 属性将包含来自 FieldStatusEnum 的一个值,描述问题的原因。

应用于

字段对象

另请参阅

Status 属性示例(字段)(VB)
Status 属性示例 (VC++)