次の方法で共有


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 に設定できないことを意味します。

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

例外

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

必要条件

**ヘッダー:**afxdb.h

参照

参照

CRecordset クラス

階層図

CRecordset::IsFieldNull

CRecordset::SetFieldNull

その他の技術情報

CRecordset のメンバー