CRecordset::Delete

仮想 void 削除 ( );
スロー ( CDBException );

解説

現在のレコードを削除するにはこのメンバー関数を呼び出します。成功した削除後、レコード セットのフィールド データ メンバーが Null 値に設定されているし、明示的に移動機能の 1 つは削除されたレコードから移動するために呼び出す必要があります。削除されたレコードから移動すると、それを返すことはできません。データ ソースがトランザクションをサポートしている場合は、トランザクションの一部を呼び出し、削除することができます。詳細については、参照してください トランザクション (ODBC)でVisual の C++ プログラマのガイド。

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

注意特価;レコード セットが更新可能にする必要がありますする必要がありますが有効なレコード、レコード セットの現在削除を呼び出すときに;それ以外の場合、エラーが発生します。たとえば、レコードを削除するが、削除再度呼び出す前に新しいレコードにはスクロールしない場合は、削除すると、 CDBException をスローします。(&N)。

AddNewや編集とは異なり、削除の呼び出しは、更新プログラムを呼び出しては続いていません。削除の呼び出しが失敗した場合は、メンバーが残っているフィールドのデータを変更。

例

この例は、関数のフレームで作成されたレコード セットを示します。存在の例 m_dbCust 、 CDatabase既にデータ ソースに接続されている型のメンバー変数。

//CRecordset の派生オブジェクトを作成します。CCustSet rsCustSet (amp; m_dbCust);rsCustSet.Open ();場合は ((rsCustSet.IsEOF) | | ! rsCustSet.CanUpdate () | |! rsCustSet.CanTransact ())戻る;場合 (! m_dbCust.BeginTrans ()){・ ・何かの障害を処理するには}他{・ ・おそらく新しいレコードにスクロール.・現在のレコードを削除rsCustSet.Delete ();// ...//このトランザクション用のコマンドの完了(<、ユーザー トランザクション確認かどうか >)m_dbCust.CommitTrans ();その他//ユーザーの心を変更m_dbCust.Rollback ();}//

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

参照特価;Database::BeginTrans、 CDatabase::CommitTrans、 CDatabase::Rollback、 CDBException(&N)

Index