次の方法で共有


CRecordset::Update

更新 : 2007 年 11 月

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

virtual BOOL Update( );

戻り値

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

解説

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

h2d9aefb.alert_note(ja-jp,VS.90).gifメモ :

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

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

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

h2d9aefb.alert_caution(ja-jp,VS.90).gif注意 :

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

Update 関数が失敗したときの処理の詳細については、「レコードセット : レコード更新のしくみ (ODBC)」を参照してください。

例外

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

使用例

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

必要条件

ヘッダー : afxdb.h

参照

参照

CRecordset クラス

階層図

CRecordset::Edit

CRecordset::AddNew

CRecordset::SetFieldDirty

CDBException クラス

その他の技術情報

CRecordset のメンバ