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 です。 各 Field の Status プロパティを使用して、Field が追加、変更、または削除されなかった理由を判断できます。
Field の追加、変更、または削除時に発生した多くの種類の問題は 、Status プロパティを介して報告されます。 たとえば、ユーザーが Field を削除すると、Fields コレクションから削除対象としてマークが付けられます。 ユーザーがアクセス許可を持たない Field を削除しようとしたために後続の Update でエラーが返された場合、Field の Status は adFieldPermissionDenied または adFieldPendingDelete になります。 CancelUpdate メソッドを呼び出すと、元の値が復元され、Status が adFieldOK に設定されます。
同様に、新しい Field が追加され、不適切な値が与えられたため、Update メソッドからエラーが返される可能性があります。 その場合、新しい Field は Fields コレクション内にあり、adFieldPendingInsert とおそらく adFieldCantCreate の状態になります (プロバイダーによって異なる)。 新しい Field に適切な値を指定し、再度 Update を呼び出すことができます。
レコードセット フィールドの状態
いずれかの Recordset の Fields コレクション内の Field オブジェクトの値に対する変更は、オブジェクトの Update メソッドが呼び出されるまでキャッシュされます。 その時点で、Field の値の変更が原因でエラーが発生した場合、OLE DB でエラー DB_E_ERRORSOCCURRED (2147749409) が発生します。 エラーの原因となった Fields コレクション内のいずれかの Field オブジェクトの Status プロパティには、問題の原因を説明する FieldStatusEnum の値が含まれます。