Toggle navigation

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 值

常量描述
adFieldOK0默认。指示已成功添加或删除该字段。
adFieldCantConvertValue2指示无法在不损失数据的情况下检索或存储该字段。
adFieldIsNull3指示提供者返回了 Null 值。
adFieldTruncated4指示从数据源读取时,变长数据被截断。
adFieldSignMismatch5指示由提供者返回的数据值带符号,而 ADO 字段值的数据类型不带符号。
adFieldDataOverflow6指示从提供者返回的数据超出了字段的数据类型。
adFieldCantCreate7指示因为提供者超过了限制(如所允许的字段数量),所以不能添加该字段。
adFieldUnavailable8指示从数据源读取时,提供者不能确定值。例如,行刚被创建,列的默认值无法使用,并且还没有指定新值。
adFieldPermissionDenied9指示由于该字段被定义为只读,因此无法对其进行修改。
adFieldIntegrityViolation10指示由于该字段是计算或派生的项目,因此无法对其进行修改。
adFieldSchemaViolation11指示值违反了字段的数据源模式限制。
adFieldBadStatus12指示从 ADO 向 OLE DB 提供者发送了无效状态值。原因可能是 OLE DB 1.0 或 1.1 提供者,或者是 Value 与 Status 的组合不恰当。
adFieldDefault13指示在设置数据时使用了字段的默认值。
adFieldIgnore15指示在设置源中的数据值时,此字段被跳过。提供者未设置任何值。
adFieldDoesNotExist16指示指定的字段不存在。
adFieldInvalidURL17指示数据源 URL 包含无效的字符。
adFieldResourceLocked18指示因为数据源被一个或多个其他应用程序或进程锁定,所以提供者不能执行操作。
adFieldResourceExists19指示因为对象已在目标 URL 中存在,而且不能被覆盖,所以提供者不能执行操作。
adFieldCannotComplete20指示由 Source 指定 URL 的服务器不能完成操作。
adFieldVolumeNotFound21指示提供者不能定位 URL 指示的存储量。
adFieldOutOfSpace22指示提供者无法获取足够的存储空间来完成移动或复制操作。
adFieldCannotDeleteSource23指示在移动操作中,树或子树被移动到新的位置,但是源不能被删除。
adFieldReadOnly24指示数据源中的字段被定义为只读。
adFieldResourceOutOfScope25指示源或目标 URL 超出了当前记录的范围。
adFieldAlreadyExists26指示指定的字段已存在。
adFieldPendingInsert0x10000指示 Append 操作导致需要设置状态。Field 被标记为在调用 Update 方法后添加到 Fields 集合。
adFieldPendingDelete0x20000指示 Delete 操作导致需要设置状态。该字段被标记为在调用 Update 方法后从 Fields 集合删除。
adFieldPendingChange0x40000指示该字段被删除后又被重新添加(可能数据类型不同),或者指示以前具有 adFieldOK 状态的字段的值已经被更改。字段的最终格式将在调用 Update 方法之后修改 Fields 集合。
adFieldPendingUnknown0x80000指示提供者无法确定哪个操作导致需要设置状态。
adFieldPendingUnknownDelete0x100000指示提供者无法确定哪个操作导致需要设置字段状态,以及在调用 Update 方法后,该字段将被从 Fields 集合中删除。