次の方法で共有


CRecordset::IsFieldNullable

更新 : 2007 年 11 月

現在のレコードの指定したフィールドに NULL (値を持たない) を設定できるときは 0 以外を返します。

BOOL IsFieldNullable( 
   void * pv  
);

パラメータ

  • pv
    状態を調べるフィールド データ メンバへのポインタ。NULL を設定できるフィールドがあるかどうかを調べるには NULL を指定します。

解説

指定したフィールド データ メンバを "NULL 許容" かどうかを調べます。NULL にできるとは、NULL の値を設定できることです。C++ での NULL とは異なり、データベースの専門用語では、NULL は "値を持たない" ことを意味します。

434eezad.alert_note(ja-jp,VS.90).gifメモ :

バルク行フェッチを実装した場合、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 に設定できないことを意味します。

IsFieldNullableDoFieldExchange を使って実装されます。

例外

このメソッドは、CDBException* 型の例外をスローできます。

必要条件

ヘッダー : afxdb.h

参照

参照

CRecordset クラス

階層図

CRecordset::IsFieldNull

CRecordset::SetFieldNull

その他の技術情報

CRecordset のメンバ