CDaoRecordset::SetFieldDirty
更新 : 2007 年 11 月
レコードセットのフィールド データ メンバに、変更の有無を示すフラグを設定します。
void SetFieldDirty(
void* pv,
BOOL bDirty = TRUE
);
パラメータ
pv
レコードセットのフィールド データ メンバのアドレス、または NULL。NULL を指定したときは、レコードセットのすべてのフィールド データ メンバにフラグがセットされます。(データベースの専門用語の NULL とは異なり、C++ の NULL は、"値を持たない" ことを意味します。)bDirty
TRUE を指定すると、フィールド データ メンバは "ダーティ" (変更されている) としてマークされます。FALSE を指定すると、フィールド データ メンバは "クリーン" (変更されていない) としてマークされます。
解説
フィールドが変更されていないとマークされている場合、そのフィールドは更新されていないことを示します。
フレームワークは変更されたフィールド データ メンバをマークし、DAO レコード フィールド エクスチェンジ (DFX) 機構がデータ ソースのレコードに書き込むようにします。フィールドの値を変更すると、通常、フィールドは自動的にダーティに設定されます。したがって、SetFieldDirty 関数を呼び出す必要はほとんどありません。しかし、フィールド データ メンバの値にかかわらず列を明示的に更新または挿入する必要がある場合は、SetFieldDirty 関数を呼び出します。DFX 機構では PSEUDONULL も使用できます。詳細については、「CDaoFieldExchange::m_nOperation」を参照してください。
ダブル バッファリング機構が使用されていない場合、フィールドの値が変更されても、自動的にダーティとして設定されません。この場合、フィールドを明示的にダーティとしてマークする必要があります。フィールドの自動チェックは、m_bCheckCacheForDirtyFields が保持するフラグによって制御されます。
メモ : |
---|
関数の最初の引数に NULL を指定すると、CDaoFieldExchange の params フィールドではなく、すべての outputColumns フィールドに関数が適用されます。呼び出し形式は、次のとおりです。
SetFieldDirty(NULL);
は、outputColumns フィールドのみに NULL をセットし、params フィールドには影響を与えません。
params に対する設定には、次のように設定する param の実際のアドレスを渡す必要があります。
SetFieldDirty(&m_strParam);
これは、outputColumns フィールドとは異なり、すべての params フィールドを同時に NULL に設定できないことを意味します。
SetFieldDirty は、DoFieldExchange によって実装されています。
必要条件
ヘッダー : afxdao.h