掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ODBCDirectで、Commit後もカーソルを保持したい (ID:126980)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
もともとmdbにデータを持っていたDAO/Jetのプログラムを、 なるべく変更しないでSQL Serverに対応させたいため、 DAO/ODBCDirectで動かそうとしています。 〜環境〜 VB6.0 Access2000→SQL Server2000 DAO/Jetでは、CommitTrans前にOpenしたRecordSetに対して、CommitTrans後もアクセスできたのですが、 ODBCDirectでは実行時エラー3670(カーソルが無効です)となってしまいます。 原因は下記のためと思われます。 http://support.microsoft.com/default.aspx?scid=kb;ja;409745 > 詳細 > 〜中略〜 > SQL Server(TM) ODBC Driver バージョン2.65.0240 の仕様によるものです。 > トランザクション処理後のカーソルの振る舞いは ODBC ドライバによって決定されます。 > 〜中略〜 > SQL Server ODBC Driver は SQL_CB_CLOSE が設定されているため、 > コミットおよびロールバック後にカーソルはクローズされます。 > その後、カーソルを必要とする Recordset オブジェクトの操作を行うとエラーが発生します。 > 対処方法 > CommitTrans メソッド、Rollback メソッド実行後に Requery メソッドにより > Recordset オブジェクトを再構築してください。 対処はRequeryとなっているのですが、そうではなく、 SQL_CB_PRESERVE(カーソル保持)に変更する方法はないでしょうか? ODBC APIだとSQLSetConnectOptionなどで変更できるようなのですが...。 何か方法をご存知の方がいらっしゃいましたら、宜しくお願い致します。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.