CRecordset::Update
更新 : 2007 年 11 月
新しいデータ、または編集されたデータをデータ ソースに保存することにより、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 を呼び出すと、Update は CDBException をスローします。AddNew 関数や Edit 関数を呼び出したときは、現在のレコードセットを移動する関数を呼び出したり、レコードセットやデータ ソース接続を閉じる前に、Update 関数を呼び出す必要があります。呼び出さないと、変更は警告なしで失われます。 |
Update 関数が失敗したときの処理の詳細については、「レコードセット : レコード更新のしくみ (ODBC)」を参照してください。
例外
このメソッドは、CDBException* 型の例外をスローできます。
使用例
「トランザクション : レコードセットからのトランザクション実行 (ODBC)」を参照してください。
必要条件
ヘッダー : afxdb.h