次の方法で共有


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 クラス