Status プロパティ (ADO フィールド)
Field オブジェクトの状態を示します。
戻り値
FieldStatusEnum 値を返します。 既定値は adFieldOK です。
備考
レコード フィールドの状態
Record オブジェクトの Fields コレクション内の Field オブジェクトの値への変更は、オブジェクトの Update メソッドが呼び出されるまでキャッシュされます。 その時点で、フィールドの値を変更するとエラーが発生した場合、OLE DB はエラー DB_E_ERRORSOCCURRED (2147749409) を発生させます。 エラーの原因となった Fields コレクション内の Field オブジェクトの Status プロパティには、問題の原因を説明する FieldStatusEnum の値が含まれます。
パフォーマンスを向上させるために、Record オブジェクトのコレクション フィールドへの追加と削除は、Update メソッドが呼び出され、バッチオプティミスティック更新で変更が行われるまでキャッシュされます。 Update メソッドが呼び出されない場合、サーバーは更新されません。 更新に失敗した場合は、OLE DB プロバイダー エラー (DB_E_ERRORSOCCURRED) が返され、Status プロパティは、操作とエラー状態コードの値を組み合わせた値を示します。 たとえば、adFieldPendingInsert または adFieldPermissionDenied をします。 各 フィールド の Status プロパティを使用して、フィールドの が追加、変更、または削除されなかった理由を判断できます。
フィールド の追加、変更、または削除時に発生した多くの種類の問題は、Status プロパティを通じて報告されます。 たとえば、ユーザーが Fieldを削除すると、Fields コレクションから削除対象としてマークされます。 ユーザーがアクセス許可を持たない フィールド を削除しようとしたため、後続の Update がエラーを返した場合、フィールド は adFieldPermissionDenied or adFieldPendingDelete の 状態。 CancelUpdate メソッドを呼び出すと、元の値が復元され、状態 が adFieldOK に設定されます。
同様に、新しい フィールド が追加され、不適切な値が指定されたため、Update メソッドでエラーが返される場合があります。 その場合、新しい フィールド は Fields コレクション内にあり、adFieldPendingInsert 状態になり、場合によっては adFieldCantCreate されます (プロバイダーによって異なります)。 新しい フィールド に適切な値を指定し、Update をもう一度呼び出すことができます。
レコードセット フィールドの状態
Recordset の Fields コレクション内の Field オブジェクトの値に対する変更は、オブジェクトの Update メソッドが呼び出されるまでキャッシュされます。 その時点で、フィールドの値を変更するとエラーが発生した場合、OLE DB はエラー DB_E_ERRORSOCCURRED (2147749409) を発生させます。 エラーの原因となった Fields コレクション内の Field オブジェクトの Status プロパティには、問題の原因を説明する FieldStatusEnum の値が含まれます。