Status プロパティ (ADO Field)

Field オブジェクトの状態を示します。

戻り値

FieldStatusEnum 値を返します。 既定値は adFieldOK です。

注釈

レコード フィールドの状態

Record オブジェクトの Fields コレクション内の Field オブジェクトの値に対する変更は、オブジェクトの Update メソッドが呼び出されるまでキャッシュされます。 その時点で、Field の値の変更が原因でエラーが発生した場合、OLE DB でエラー DB_E_ERRORSOCCURRED (2147749409) が発生します。 エラーの原因となった Fields コレクション内のいずれかの Field オブジェクトの Status プロパティには、問題の原因を説明する FieldStatusEnum の値が含まれます。

パフォーマンスを向上させるために、Record オブジェクトの Fields コレクションに対する追加と削除は、Update メソッドが呼び出されるまでキャッシュされ、バッチ オプティミスティック更新で変更が行われます。 Update メソッドが呼び出されない場合、サーバーは更新されません。 更新が失敗した場合は、OLE DB プロバイダー エラー (DB_E_ERRORSOCCURRED) が返され、Status プロパティは操作とエラー状態コードの組み合わせ値を示します。 たとえば、adFieldPendingInsert または adFieldPermissionDenied です。 各 FieldStatus プロパティを使用して、Field が追加、変更、または削除されなかった理由を判断できます。

Field の追加、変更、または削除時に発生した多くの種類の問題は 、Status プロパティを介して報告されます。 たとえば、ユーザーが Field を削除すると、Fields コレクションから削除対象としてマークが付けられます。 ユーザーがアクセス許可を持たない Field を削除しようとしたために後続の Update でエラーが返された場合、FieldStatusadFieldPermissionDenied または adFieldPendingDelete になります。 CancelUpdate メソッドを呼び出すと、元の値が復元され、StatusadFieldOK に設定されます。

同様に、新しい Field が追加され、不適切な値が与えられたため、Update メソッドからエラーが返される可能性があります。 その場合、新しい FieldFields コレクション内にあり、adFieldPendingInsert とおそらく adFieldCantCreate の状態になります (プロバイダーによって異なる)。 新しい Field に適切な値を指定し、再度 Update を呼び出すことができます。

レコードセット フィールドの状態

いずれかの Recordset の Fields コレクション内の Field オブジェクトの値に対する変更は、オブジェクトの Update メソッドが呼び出されるまでキャッシュされます。 その時点で、Field の値の変更が原因でエラーが発生した場合、OLE DB でエラー DB_E_ERRORSOCCURRED (2147749409) が発生します。 エラーの原因となった Fields コレクション内のいずれかの Field オブジェクトの Status プロパティには、問題の原因を説明する FieldStatusEnum の値が含まれます。

適用対象

Field オブジェクト

参照

Status プロパティの例 (Field) (VB)
Status プロパティの例 (VC++)