次の方法で共有


CRecordset::SetFieldNull

null 以外として NULL としてレコードセットのフィールド データ メンバー (特に値を持つしない) フラグまたはフラグを設定します。

void SetFieldNull(
   void* pv,
   BOOL bNull = TRUE 
);

パラメーター

  • pv
    レコードセットか nullでフィールド データ メンバーのアドレスが格納されます。nullが、すべてのフィールドに対してレコードセット データ メンバーにフラグが設定されます。(C++ null は「値の一つを意味するデータベース用語の Null 値と同じではありません。」)

  • bNull
    ゼロ以外のフィールド データ メンバーにする場合は値がありません (NULL) としてフラグを設定します。はフィールド データ メンバーに null 以外としてフラグが設定される場合は 0。

解説

レコードセットに新しいレコードを追加すると、すべてのフィールド データ メンバーに null 値に設定され、「ダーティとして」フラグが設定されます (変更)。データ ソースからレコードを取得すると、列に既に値があるか、が null です。

[!メモ]

バルク行フェッチを使用してこのレコードセットのメンバー関数を呼び出さないでください。バルク行フェッチを実装している SetFieldNull を呼び出すと、アサーション エラーが発生します。バルク行フェッチに関する詳細については、" " レコードセット: フェッチ サイズのレコードを (ODBC)を参照してください。

特に場合には値がありませんとして現在のレコードのフィールドと Null 値としてフラグを設定するに [真] に設定 bNull の呼び出し SetFieldNull。フィールドが前に示すマークが null 値であり、これで、値を変更する場合は、新しい値を設定します。SetFieldNullを null のフラグを削除する必要はありません。フィールドが null であるかどうかを確認するには IsFieldNullableを呼び出します。

Caution メモ注意

[編集]AddNewを呼び出した後にのみこのメンバー関数を呼び出します。

関数の最初の引数に null を使用して outputColumn のフィールド param のフィールドではなくだけに関数を適用します。たとえば、呼び出し

SetFieldNull(NULL);

nulloutputColumn のフィールドだけを設定します; param のフィールドは影響を受けません。

param のフィールドを操作するには、処理するユーザー param 実際のアドレスを指定する必要があります:

SetFieldNull(&m_strParam);

これは outputColumn のフィールドと同様に nullparam のすべてのフィールドを設定できないことを意味します。

[!メモ]

パラメーター、を呼び出して、レコードセットの前に SetFieldNull に Null 値に設定すると、アサーションに開かれた結果です。この場合、呼び出し SetParamNull

SetFieldNullDoFieldExchangeによって実装されます。

必要条件

Header: afxdb.h

参照

関連項目

CRecordset クラス

階層図

CRecordset::IsFieldNull

CRecordset::SetFieldDirty

CRecordset::Edit

CRecordset::Update

CRecordset::IsFieldNullable