CDaoRecordset::Edit
現在のレコードの変更を許可するには、このメンバー関数を呼び出します。
virtual void Edit( );
解説
[編集] のメンバー関数を呼び出すと、行われたコピーのバッファーへの現在のレコードのフィールドへの変更はコピーされません。目的のレコードへの変更を加えた後、変更を保存呼び出し 更新。[編集] は、レコードセット データ メンバーの値を保存します。[編集]を呼び出す場合は、前に [編集] の最初の呼び出しの設定に変更を加え、[編集] を、レコードの値に復元されます再度呼び出します。
注意 |
---|
レコードを編集し、最初の呼び出し 更新なしで別のレコードに移動操作を実行すると、変更は警告なしに失われます。また、レコードセットまたは親のデータベースを閉じる、編集されたレコードは警告なしに破棄されます。 |
場合によっては、無効にするには、を作成して列を更新する場合、(データは含まれていません)。そのためには、フィールドの Null をマークするように [真] のパラメーターの SetFieldNull を呼び出します。; これは、列を更新します。値が変更されていない場合でもフィールドにデータ ソースに書き込まれる場合は、**[真]**のパラメーターの SetFieldDirty を呼び出します。つまり、このフィールドの値に NULL がある場合でも機能します。
これらは DAO レコード フィールド エクスチェンジ (DFX) 機構を通じてデータ ソースのレコードを確保するフレームワークのマークによって変更されたフィールド データ メンバー書き込まれます。フィールドの値を変更しても、通常、ダーティなフィールドが自動的に設定するため、ほとんど独自 SetFieldDirty を呼び出す必要はありませんが、場合、値がフィールド データ メンバーにかかわらず、または列が明示的に更新または挿入できるようにする必要がある場合があります。DFX 機構は、PSEUDO NULLの使用が行われます。詳細については、CDaoFieldExchange::m_nOperationを参照してください。
Double バッファリングの機構を使用しない場合、フィールドの値を変更すると、ダーティとして自動的にフィールドを設定しません。この場合、ダーティ フィールドを明示的に設定する必要があります。m_bCheckCacheForDirtyFields に含まれているフラグは、このフィールドの自動チェックを制御します。
レコードセット オブジェクトがマルチユーザー環境で悲観的にロックすると、更新が完了するまでの時間 [編集] レコードからロックされた状態に使用されます。レコードセットが楽観的にレコードがロックされている場合は、事前編集されたレコードとデータベース内で更新される直前にロックすると、比較されます。**[編集]**を呼び出してからレコードが変更されている場合、更新 操作は失敗し、MFC は例外をスローします。SetLockingModeのロック モードを変更できます。
[!メモ]
共有ロックは ODBC およびインストール可能な ISAM などの外部データベース形式で使用されます。
現在のレコードは [編集]を呼び出した後に最新のままです。[編集]を呼び出すには、現在のレコードが必要です。現在のレコードが存在しないか、レコードセットがダイナセット テーブル型または型のレコードセット オブジェクトを示す、例外が発生します。[編集] を呼び出すと、CDaoException を次の状況でスローします:
現在のレコードがありません。
データベースまたはレコードセットは読み取り専用です。
レコードのフィールドは、変更できません。
データベースまたはレコードセットが他のユーザーによって排他的に使用するために開けられました。
別のユーザーのレコードセットのレコードを含むページがロックされる。
データ ソースがトランザクションをサポートしている場合、トランザクションの [編集] の呼び出しのパーツを作成できます。呼び出す必要があることと、レコードセットが開いていることを [編集] を呼び出す前にを CDaoWorkspace::BeginTrans 後に注意してください。また CDaoWorkspace::CommitTrans を呼び出すと、とは限りません 更新 を [編集] 操作を完了するために呼び出すに代わる注意してください。トランザクションに関する詳細については、クラス CDaoWorkspaceを参照してください。
関連情報は、DAO ヘルプ トピック「AddNew メソッド」、「編集"メソッド」、「削除"メソッド」、「update メソッド」、および「更新可能なプロパティ」"を参照してください。
必要条件
Header: afxdao.h