CRecordset::Edit

仮想 void Edit( );
スロー ( CDBExceptionCMemoryException );

解説

現在のレコードへの変更を許可するにはこのメンバー関数を呼び出します。編集を呼び出した後は、直接その値をリセットすることによって、フィールド データ メンバーを変更できます。その後、変更をデータ ソースに保存するには、 Updateメンバー関数を呼び出すと、操作の完了します。

特価;バルク行フェッチを実装している場合は、編集を呼び出すことはできません。これは、アサーション エラーが発生します。CRecordsetクラスにバルク行のデータを更新するメカニズムはありませんが、ODBC API 関数のSQLSetPosを使用して、独自の関数を書くことができます。これを行うには方法の例についてを参照してくださいサンプル dbfetch に関するトピック。バルク行フェッチの詳細については、資料を参照してください レコード セット: レコードのフェッチ一括 (ODBC)Visual の C++ プログラマのガイド(&N)。

編集レコード セットのデータ メンバーの値を保存します。編集を呼び出し、変更を行い、編集を再度呼び出す場合は、レコードの値が編集の最初の呼び出し前にだったものに復元します。

いくつかのケースでは、それ (データを含まない)、Null にすることによって、列を更新することがあります。これを行うには、Null フィールドをマークするのパラメーターとSetFieldNullを呼び出して;これも更新する列が発生します。にもかかわらず、その値が変更されていないデータ ソースに書き込まれるフィールド場合は、のパラメーターでSetFieldDirtyを呼び出します。フィールドの値がある Null 場合でもこの作品します。

データ ソースがトランザクションをサポートしている場合は、トランザクションの一部を呼び出し、編集をすることができます。編集を呼び出す前に、レコード セットが開かれた後CDatabase::BeginTransを呼び出す必要がありますに注意してください。また、 CDatabase::CommitTransの呼び出しは、編集操作を完了するには、更新を呼び出すの代わりではないにも注意してください。トランザクションの詳細についてを参照してくださいCDatabaseクラス。

現在のロックのモードによっては、更新されるレコードを編集して更新または別のレコードにスクロールを呼び出すまたはロックされる可能性がありますまでロック可能性があります編集呼び出し時のみ。SetLockingModeのロック モードを変更することができます。

Updateを呼び出す前に、新しいレコードにスクロールすると、現在のレコードの前の値が復元されます。CDBException更新できないレコード セットを編集を呼び出す場合、または現在のレコードがない場合にスローされます。

詳細についてを参照してください トランザクション (ODBC) レコード セット: レコードのロック (ODBC)Visual の C++ プログラマのガイド

 //CRecordset::Edit の例・ ・ レコードを編集するには・最初に、編集バッファーを設定rsCustSet.Edit ();//次のレコードのフィールド データ メンバーを編集rsCustSet.m_dwCustID = 2795;rsCustSet.m_strCustomer =「ジョーンズ製作所」;//最後に、操作を完了場合 (! rsCustSet.Update (&))特価;//更新失敗を処理

CRecordset の概要|nbsp;クラス メンバー |階層図(&N)

参照特価;CRecordset::UpdateCRecordset::AddNewCRecordset::DeleteCRecordset::SetFieldDirtyCRecordset::SetFieldNullCRecordset::CanUpdateCRecordset::CanTransactCRecordset::SetLockingMode(&N)

Index