ADO Status属性

定義と用法

Status属性は、以下のものを返します FieldStatusEnum 値、これはFieldオブジェクトの状態を示します。デフォルト値はadFieldOKです。

更新に失敗すると、エラーが返され、Status属性が操作の組み合わせ値とエラーコードの状態を示します。各FieldのStatus属性は、そのFieldが追加、修正、または削除されていない理由を確認するために使用できます。

特定の Field に追加、修正、または削除を行う問題は、この属性を通じて報告されます。例えば、ユーザーがフィールドを削除すると、Fields コレクションでは削除されたフィールドがマークされます。ユーザーが削除権限がないフィールドを削除しようと試みた結果、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 コレクションから削除される場合の指示。