次の方法で共有


CRecordset::Update

新しいデータ、または編集されたデータをデータ ソースに保存することにより、AddNew または Edit 操作を完了します。

virtual BOOL Update( );

戻り値

1 つのレコードが更新できた場合は 0 以外を返します。どの列も更新されていない場合は 0 を返します。 どのレコードも更新されない場合、または 2 つ以上のレコードが更新された場合は、例外がスローされます。 例外はデータ ソースでこれ以外の障害が発生した場合にもスローされます。

解説

このメンバー関数は、AddNew または Edit 関数や Edit 関数メンバー関数を呼び出した後に呼び出します。 この関数を呼び出すことによって、AddNew または Edit の操作を完了します。

注意

バルク行フェッチを実装した場合、Update は呼び出せません。 呼び出すと、アサートします。 CRecordset クラスはデータのバルク行を更新する機構を持っていませんが、ODBC API 関数の SQLSetPos を使用することによって独自の関数を作成できます。 バルク行フェッチの詳細については、資料を参照してくださいレコード セット:一括 (ODBC) 内のレコードをフェッチ

AddNew 関数および Edit 関数はどちらも、データ ソースに保存するための追加または更新されたデータを置く編集バッファーを準備します。 Update はデータを保存します。 変更されたことが示されているフィールド、または変更されたことが検出されたフィールドだけを更新します。

データ ソースでトランザクションがサポートされている場合は、トランザクションの一部として、Update 関数 (および対応する AddNew 関数や Edit 関数) を呼び出すことができます。 トランザクションの詳細については、「トランザクション (ODBC)」を参照してください。

ヒント

最初に AddNew または Edit を呼び出さずに Update を呼び出すと、UpdateCDBException をスローします。 AddNew 関数や Edit 関数を呼び出したときは、現在のレコードセットを移動する関数を呼び出したり、レコードセットやデータ ソース接続を閉じる前に、Update 関数を呼び出す必要があります。 呼び出さないと、変更は警告なしで失われます。

処理の詳細については更新 の資料を参照して、 レコード セット:レコード セット (ODBC) のレコードを更新する方法

例外

このメソッドは、CDBException* 型の例外をスローできます。

使用例

参照してくださいトランザクション:レコード セット (ODBC) でのトランザクションの実行

必要条件

**ヘッダー:**afxdb.h

参照

参照

CRecordset クラス

階層図

CRecordset::Edit

CRecordset::AddNew

CRecordset::SetFieldDirty

CDBException クラス

その他の技術情報

CRecordset のメンバー