CRecordset::AddNew
テーブルに新しいレコードを追加するための準備。
構文
virtual void AddNew( );
解説
新しく追加されたレコードを表示するに [再クエリ] のメンバー関数を呼び出す必要があります。 レコードのフィールドは、最初に null です。 (データベースの用語で、Null 値は「値」ことを意味します null C++ のと同じになります)。操作を完了するには、更新 のメンバー関数を呼び出す必要があります。 更新 は、データ ソースへの変更を保存します。
注意
バルク行フェッチを実装している AddNewを呼び出すことはできません。これはアサーション エラーが発生します。クラス CRecordset が複数行のデータを更新する機構はありませんが、ODBC API 関数 SQLSetPosを使用して独自の関数を記述できます。バルク行フェッチに関する詳細については、" " レコードセット: フェッチ サイズのレコードを (ODBC)を参照してください。
AddNew、レコードセットのフィールド データ メンバーを使用して、新しい空のレコードを準備します。 AddNewを呼び出した後、レコードセットのフィールド データ メンバーに必要な値を設定します。 ( [編集] のメンバー関数をこのように呼び出す必要はありません; 既存レコードに対してのみ [編集] を使用します)。その後 更新を呼び出すと、フィールド データ メンバーの変更された値は、データ ソースに保存されます。
注意
更新を呼び出す前に新しいレコードにスクロールすると、新規レコードは失われ、警告は表示されません。
データ ソースがトランザクションをサポートしている場合、トランザクションの AddNew の呼び出しのパーツを作成できます。 トランザクションに関する詳細については、クラス CDatabaseを参照してください。 AddNewを呼び出す前に CDatabase::BeginTrans を呼び出す必要があることに注意してください。
注意
ダイナセットでは、新規レコードは、最後のレコードとしてレコードセットに追加されます。追加したレコードはスナップショットに追加されません; レコードセットを更新するに [再クエリ] を呼び出す必要があります。
[開く] のメンバー関数は、が呼び出されていないレコードセットの AddNew を呼び出すことはできません。 CDBException は追加できないレコードセットの AddNew を呼び出すとスローされます。 レコードセットが CanAppendの呼び出しによって更新可能かどうかを確認できます。
詳細については、次のトピックを参照: レコードセット: レコードセットが更新のしくみ (ODBC) を、レコードセット: 追加、更新、および削除 (ODBC) をと トランザクション (ODBC)。
例外
Exception
Condition
このメソッドは、型 **CDBException***の例外をスローできます。
使用例
トランザクション: レコードセット (ODBC) でトランザクションを実行します。" "を参照してください。
必要条件
Header: afxdb.h
参照
CRecordset クラス
階層図
CRecordset::Edit
CRecordset::Delete
CRecordset::Update
CRecordset::Requery
CDatabase::BeginTrans
CDBException クラス