- - PR -
SqlServerで更新中のテーブルをAccessで参照する方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-02-02 10:46
WinServer2003+SqlServerで開発を行っております、
SqlServer歴一ヶ月の超初心者ですが、よろしくお願い 致します。 SqlServer2000で、DTSパッケージ中のSQL実行タスクにて Select〜Updateを行うプロシージャを実行していますが、 Update実行中にAccessで変更前/変更後のデータを参照 する事が出来ません。 プロシージャ中に 「SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED」 を記述したり、 DTSパッケージのプロパティにてトランザクション分離 レベルを「READ UNCOMMITTED」に設定したりするものの、 Accessで参照を行おうとすると、 「ODBS--呼び出しが失敗しました [ODBC SQL SERVER DRIVER]時間切れになりました」 とタイムアウトになってしまいます。 Accessで上記動作を行う場合、プロシージャ側もしくは Access側に何かしらの設定が必要になるのでしょうか? ※ちなみに、SqlServerのクエリアナライザで更新中の参照を 試みた結果、Select時に(ReadUnCommitted)のテーブルヒントを 付与する事で参照出来ました。 | ||||
|
投稿日時: 2006-02-04 01:26
お疲れさまです。 申し訳ないです,私だけかもしれませんが, 本件の DTS と Access の関係がよくわかりません。 DTS パッケージを実行中に 他の Access ADP などからデータを参照しようとしているということですか? それとも, DTS パッケージ内から Access に何か影響を及ぼそうとしているということでしょうか? 実現しようとしている要件をもう少し詳説願えますでしょうか。 ---------- TimberLandChapel http://blogs.timberlandchapel.com/blogs/timberlandchapel/ | ||||
|
投稿日時: 2006-02-06 15:07
質問の主旨は、 「AccessからODBC経由でSQL Serverにアクセスしているが、DTSでUpdate中だとAccessからの参照がタイムアウトするので回避する方法を教えて欲しい」 ということかと思います。 SQL Serverはトランザクション実行時は、そのレコードが(select文などで)参照できなくなり、どうしても参照したい場合は"ダーティリード"という指定をしなくてはなりません。ODBCに"ダーティリード"の設定があれば問題解決なのでしょうが・・・ 申し訳ありません、私もそこから先は知りません。 | ||||
|
投稿日時: 2006-02-06 15:52
こんにちは。
他のセッションのトランザクションに参加する方法はあります。 sp_bindsessionをBooksOnLineで調べてみてください。 参考になりますでしょうか? | ||||
|
投稿日時: 2006-02-09 15:11
TLCさん、Desmoさん、momotaroさん、コメントありがとうございます。
返答が遅れて申し訳ありません。 >TLCさん、Desmoさん 当方の質問の主旨は、Desmoさんのコメントの通りです。 「DTSでupdate実行中」に、 「SqlServerのクエリアナライザ等からダーティリードで参照は可能」だが、 「Accessにて同テーブルを開こうとすると、タイムアウトになる」為 タイムアウトにならずに、Accessから参照する方法を知りたい、という事でした。 (わかりづらくて申し訳無い) Desmoさんのおっしゃる、”Accessでのダーティリード(の様な)読み取り設定” が可能かどうかは、 私も色々試してみたのですが、状況は変わりませんでした。 >momotaroさん sp_bindsessionについて、調べてみます。 アドバイスありがとうございます。 返信が遅れていたので、とりあえず今回はこれで。 |
1