CRecordset::IsFieldNullable
現在のレコードの指定したフィールドに NULL (値を持たない) を設定できるときは 0 以外を返します。
BOOL IsFieldNullable(
void * pv
);
パラメーター
- pv
状態を調べるフィールド データ メンバーへのポインター。NULL を設定できるフィールドがあるかどうかを調べるには NULL を指定します。
解説
指定したフィールド データ メンバーを "NULL 許容" かどうかを調べます。NULL にできるとは、NULL の値を設定できることです。C++ での NULL とは異なり、データベースの専門用語では、NULL は "値を持たない" ことを意味します。
注意
バルク行フェッチを実装した場合、IsFieldNullable は呼び出せません。 代わりに、GetODBCFieldInfo メンバー関数を呼び出して、フィールドに Null 値を設定できるかどうかを調べます。 GetODBCFieldInfo は、バルク行フェッチを実装しているかどうかにかかわらず、呼び出せます。 バルク行フェッチの詳細については、資料を参照してくださいレコード セット:一括 (ODBC) 内のレコードをフェッチ。
NULL を設定できないフィールドは、必ず値を持つ必要があります。 NULL を設定できないフィールドにレコードの追加や更新時に NULL を設定しようとすると、データ ソースは追加や更新を拒否し、Update 関数は例外をスローします。 例外は SetFieldNull 関数を呼び出したときではなく、Update 関数を呼び出したときに発生します。
関数の最初の引数に NULL を指定したときは、関数は outputColumns フィールドのみに適用され param フィールドには適用されません。 呼び出し形式は、次のとおりです。
SetFieldNull(NULL);
は、outputColumns フィールドのみに NULL をセットし、param フィールドには影響を与えません。
param フィールドに対して行うには、次のように、変更する param の個別のアドレスを渡す必要があります。
SetFieldNull(&m_strParam);
これは、outputColumns フィールドとは異なり、すべての param フィールドを同時に NULL に設定できないことを意味します。
IsFieldNullable は DoFieldExchange を使って実装されます。
例外
このメソッドは、CDBException* 型の例外をスローできます。
必要条件
**ヘッダー:**afxdb.h