仮想 void AddNew ();
throw (CDaoException, CMemoryException);
解説
テーブル タイプまたはダイナセット タイプのレコード セットに新しいレコードを追加するにはこのメンバー関数を呼び出します。レコードのフィールドは、最初の Null です。(データベース用語では、「値を持たない」ことを意味を Null し、 NULL c と同じではありません)。操作を完了するには、 Updateメンバー関数を呼び出す必要があります。変更をデータ ソースに更新を保存します。
注意特価;レコードを編集し、呼び出し元の更新プログラムに別のレコードにスクロールする場合、変更は警告なしで失われます(&N)。
AddNewを呼び出して、ダイナセット タイプのレコード セットにレコードを追加する場合、レコード レコード セットに表示され、新しいCDaoRecordsetオブジェクトに見えるようになります、基になるテーブルに含まれて。
新しいレコードの位置はレコード セットの種類によって異なります:
rs。SetBookmark (rs。GetLastModifiedBookmark ())
AddNewを使用する前に現在のレコードは現在のままです。新しいレコードをカレントにして、レコード セットがブックマークをサポートしている場合は、基になる DAO レコード セット オブジェクトの LastModified プロパティの設定によって識別されるブックマークにSetBookmarkを呼び出します。これは、カウンター (自動インクリメント) のフィールドで、追加のレコードの値を決定するのに便利です。詳細についてを参照してくださいGetLastModifiedBookmark。
データベース トランザクションをサポートする場合は、トランザクションの一部を呼び出すAddNewをすることができます。トランザクションの詳細については、クラスCDaoWorkspaceを参照してください。AddNewを呼び出す前にCDaoWorkspace::BeginTransを呼び出す必要があることに注意してください。
それは、 Openメンバー関数が呼び出されていないレコード セットに対してAddNewを呼び出すことは違法です。追加することはできません、レコード セットのaddnew 関数を呼び出した場合、 CDaoExceptionがスローされます。CanAppendを呼び出して、レコード セットが更新可能かどうかを確認することができます。
フレームワークは、データ ソース上のレコードに、DAO レコード フィールド エクス (チェンジ DFX) 機構によって書き込まれるように、フィールド データ メンバーを変更しました。一般的に、フィールドの値を変更、フィールド ダーティ自動的に、あなたはほとんど自分でSetFieldDirtyを呼び出す必要がありますが、ある列が明示的に更新または値フィールド データ メンバーであるかにかかわらず挿入されたことを確認する場合がありますよう設定します。DFX 機構はまた擬似 NULLの使用を採用します。詳細についてを参照してくださいCDaoFieldExchange::m_nOperation。
ダブル バッファリング機構が使用されていない場合は、[フィールドの値を変更する自動的に、フィールド ダーティとして設定されません。この場合、明示的に設定するとダーティのフィールド必要があります。この自動フィールド チェック フラグm_bCheckCacheForDirtyFieldsコントロールに含まれています。
注特価;レコードがダブルバッファーの場合 (つまり、自動フィールド チェックは有効です)、メンバー変数のAddNewまたは編集が呼び出される前に値が復元されますCancelUpdateを呼び出す(&N)。
レコードの更新の詳細については、資料を参照してください DAO レコード セット: レコード セットの操作 Visual の C++ プログラマのガイド。関連情報については、「AddNew メソッド」、「CancelUpdate メソッド」、「LastModified プロパティ」、DAO ヘルプの「EditMode プロパティ」のトピックを参照してください。
CDaoRecordset の概要|nbsp;クラス メンバー |階層図(&N)
参照特価;CDaoRecordset::CanUpdate、 CDaoRecordset::CancelUpdate、 CDaoRecordset::Delete、 CDaoRecordset::Edit、 CDaoRecordset::Update、 CDaoRecordset::CanTransact(&N)