電子書籍の厳選無料作品が豊富!

SQLについて質問です。
上司からデータベースとのデータのやり取りで誰かが操作中は他から参照・変更できないようにパススルークエリを使えといわれました。
パススルークエリとはどのようにして使用するのでしょうか?
この場合トランザクションを使用するのが適切ではないんですか?

A 回答 (3件)

トランザクションを使用するのが適切です。


上司の方は微妙にパススルークエリの意味を取り違えているのかもしれません。Accessにはトランザクションがありませんのでトランザクションの開始とコミットの命令はパススルークエリで送信しますからそのあたりで勘違いされている可能性があります。


以下、参考URLより引用

パススルークエリ [pass-through query]
Accessに用意されているSQLクエリのひとつ。入力したSQL文をAccessに解釈させず、直接データベースサーバーに送信することができる。

参考URL:http://www.x-media.co.jp/jiten/index.cfm?ID=6633
    • good
    • 0

「操作中」っていうのが微妙に心配・・・


編集用の画面を開いてから閉じるまでずっと参照も禁止するとか・・・
    • good
    • 0

>パススルークエリとはどのようにして使用するのでしょうか?


SQLServer+Accessの構成なのでしょうか。
AccessからSQLServerのサーバー構成のリンクによってリモートデータソースに対しクエリを直接実行する形になります。
パススルークエリはODBCドライバ経由で直接データベースへクエリを発行します。全てSQL文でクエリを書く必要があります。SQLはSQLServer準拠のSQLを書かなければいけません。
>操作中は他から参照・変更できないように
Transaction開始時のIsolationLevelをRepeatableReadに設定しSQLで
string strSQL = "SET LOCK_TIMEOUT 1000 SELECT * FROM table_name WITH(XLOCK) ";
みたいに排他ロックして取得すれば良いと思いますが。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す