CRecordset::IsFieldNullable
更新 : 2007 年 11 月
現在のレコードの指定したフィールドに 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