ADO Status 属性

定义和用法

Status 属性可返回一个 FieldStatusEnum 值,该值指示 Field 对象的状态。默认值是 adFieldOK。

如果更新失败,将返回错误,并且 Status 属性会指示该操作的组合值和错误状态代码。每个 Field 的 Status 属性均可用于确定该 Field 未被添加、修改或删除的原因。

添加、修改或删除某个 Field 的问题会通过此属性进行报告。举例,如果用户删除一个字段,它将在 Fields 集合中被标记为删除。如果由于用户试图删除其没有权限删除的 Field,使得 Update 调用返回错误,那么该字段的 Status 将是 adFieldPermissionDenied 或 adFieldPendingDelete。

语法

objfield.Status

实例

<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"

set rs = Server.CreateObject("ADODB.Recordset")
rs.open "Select * from orders", conn

response.write(rs.Fields(0).Status)

rs.Close
conn.close
%>

FieldStatusEnum 值

常量 描述
adFieldOK 0 默认。指示已成功添加或删除该字段。
adFieldCantConvertValue 2 指示无法在不损失数据的情况下检索或存储该字段。
adFieldIsNull 3 指示提供者返回了 Null 值。
adFieldTruncated 4 指示从数据源读取时,变长数据被截断。
adFieldSignMismatch 5 指示由提供者返回的数据值带符号,而 ADO 字段值的数据类型不带符号。
adFieldDataOverflow 6 指示从提供者返回的数据超出了字段的数据类型。
adFieldCantCreate 7 指示因为提供者超过了限制(如所允许的字段数量),所以不能添加该字段。
adFieldUnavailable 8 指示从数据源读取时,提供者不能确定值。例如,行刚被创建,列的默认值无法使用,并且还没有指定新值。
adFieldPermissionDenied 9 指示由于该字段被定义为只读,因此无法对其进行修改。
adFieldIntegrityViolation 10 指示由于该字段是计算或派生的项目,因此无法对其进行修改。
adFieldSchemaViolation 11 指示值违反了字段的数据源模式限制。
adFieldBadStatus 12 指示从 ADO 向 OLE DB 提供者发送了无效状态值。原因可能是 OLE DB 1.0 或 1.1 提供者,或者是 Value 与 Status 的组合不恰当。
adFieldDefault 13 指示在设置数据时使用了字段的默认值。
adFieldIgnore 15 指示在设置源中的数据值时,此字段被跳过。提供者未设置任何值。
adFieldDoesNotExist 16 指示指定的字段不存在。
adFieldInvalidURL 17 指示数据源 URL 包含无效的字符。
adFieldResourceLocked 18 指示因为数据源被一个或多个其他应用程序或进程锁定,所以提供者不能执行操作。
adFieldResourceExists 19 指示因为对象已在目标 URL 中存在,而且不能被覆盖,所以提供者不能执行操作。
adFieldCannotComplete 20 指示由 Source 指定 URL 的服务器不能完成操作。
adFieldVolumeNotFound 21 指示提供者不能定位 URL 指示的存储量。
adFieldOutOfSpace 22 指示提供者无法获取足够的存储空间来完成移动或复制操作。
adFieldCannotDeleteSource 23 指示在移动操作中,树或子树被移动到新的位置,但是源不能被删除。
adFieldReadOnly 24 指示数据源中的字段被定义为只读。
adFieldResourceOutOfScope 25 指示源或目标 URL 超出了当前记录的范围。
adFieldAlreadyExists 26 指示指定的字段已存在。
adFieldPendingInsert 0x10000 指示 Append 操作导致需要设置状态。Field 被标记为在调用 Update 方法后添加到 Fields 集合。
adFieldPendingDelete 0x20000 指示 Delete 操作导致需要设置状态。该字段被标记为在调用 Update 方法后从 Fields 集合删除。
adFieldPendingChange 0x40000 指示该字段被删除后又被重新添加(可能数据类型不同),或者指示以前具有 adFieldOK 状态的字段的值已经被更改。字段的最终格式将在调用 Update 方法之后修改 Fields 集合。
adFieldPendingUnknown 0x80000 指示提供者无法确定哪个操作导致需要设置状态。
adFieldPendingUnknownDelete 0x100000 指示提供者无法确定哪个操作导致需要设置字段状态,以及在调用 Update 方法后,该字段将被从 Fields 集合中删除。