仮想 void AddNew ( );
スロー ( CDBException );
解説
テーブルに新しいレコードを追加するための準備にこのメンバー関数を呼び出します。新しく追加されたレコードを参照するクエリを再実行のメンバー関数を呼び出す必要があります。レコードのフィールドは、最初の Null です。(データベース用語では、「値を持たない」ことを意味を Null し、 NULL c と同じではありません)。操作を完了するには、 Updateメンバー関数を呼び出す必要があります。変更をデータ ソースに更新を保存します。
注特価;バルク行フェッチを実装している場合は、 AddNewを呼び出すことはできません。これは、アサーション エラーが発生します。CRecordsetクラスにバルク行のデータを更新するメカニズムはありませんが、ODBC API 関数のSQLSetPosを使用して、独自の関数を書くことができます。これを行うには方法の例についてを参照してくださいサンプル dbfetch に関するトピック。バルク行フェッチの詳細については、資料を参照してください レコード セット: レコードのフェッチ一括 (ODBC)でVisual の C++ プログラマのガイド(&N)。
AddNewは、レコード セットのフィールド データ メンバーを使用して、新しい空のレコードを準備します。AddNewを呼び出した後は、必要な値で、レコード セットのフィールド データ メンバーを設定します。(この目的のために;編集メンバー関数を呼び出す必要はありません編集は、既存のレコードに対してのみ使用します)。その後、 Updateを呼び出すときは、メンバーがデータ ソースに保存されます、フィールド データの値を変更。
注意特価;Updateを呼び出す前に、新しいレコードにスクロールすると、新しいレコード失われ、警告はありません。(&N)。
データ ソースがトランザクションをサポートしている場合は、トランザクションの一部を呼び出すAddNewをすることができます。トランザクションの詳細については、 CDatabaseクラスを参照してください。AddNewを呼び出す前にCDatabase::BeginTransを呼び出す必要があることに注意してください。
重要特価;ダイナセットでは、新しいレコードをレコード セットに、最後のレコードとして追加されます。レコードのスナップショットに追加されませんを追加 ? レコード セットを更新するクエリを再実行を呼び出す必要があります(&N)。
それは、 Openメンバー関数が呼び出されていないレコード セットに対してAddNewを呼び出すことは違法です。追加することはできません、レコード セットのaddnew 関数を呼び出した場合、 CDBExceptionがスローされます。CanAppendを呼び出して、レコード セットが更新可能かどうかを確認することができます。
詳細についてを参照してくださいVisual の C++ プログラマのガイドの次の記事: レコード セット: レコード更新のしくみ (ODBC)、 レコード セット: 追加、更新、およびレコードの削除 (ODBC)、および トランザクション (ODBC)。
例
参照してください トランザクション: レコード セット (ODBC) でのトランザクションの実行でVisual の C++ プログラマのガイド。
CRecordset の概要|nbsp;クラス メンバー |階層図(&N)
参照特価;CRecordset::Edit、 CRecordset::Delete、 CRecordset::Update、 :requery、 CDatabase::BeginTrans、 CDBException(&N)