@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

OpenQuery内でパラメータを使えますか?

1
投稿者投稿内容
Wandayu
会議室デビュー日: 2003/11/05
投稿数: 10
投稿日時: 2003-11-10 13:29
こんにちは

VB.NETとSQL Server 2000を使用しています。
DB2のテーブルをリンクサーバーで繋げてSQL Serverから検索しているのですが、
OpenQueryを使用する際にパラメータを渡したいのです。

select * from OpenQuery(LinkServer,
'select * from Libray.Table where Field1 = ''?'' ')
のように記述すると「?」部分がパラメータでなく、文字列として見られてしまいます。
& を使用すれば可能なのですが、できればパラメータを使用して
見やすくコーディングしたいのです。

物理的に可能かどうか?
どなたかご存知の方、アドバイスお願いします。
ほむら
ぬし
会議室デビュー日: 2003/02/28
投稿数: 583
お住まい・勤務地: 東京都
投稿日時: 2003-11-10 15:05
ども、ほむらです。
パラメータクエリしか作ったこと無いのですが。。。
ダメ元の発言です。
--------
PARAMETERS name type を使用して明示的にパラメーターを指定してみてはどうでしょう?
ただ、僕にはこのパラメーターの使い方がわかりませんが^^;;;;;;

PARAMETERS [DATA] TEXT;
SELECT * FROM Library.Table
WHERE Field1 = [DATA];

とか。。。
Wandayu
会議室デビュー日: 2003/11/05
投稿数: 10
投稿日時: 2003-11-11 10:18
こんにちは
ほむらさん。

私の勉強不足なのかもしれませんが、PARAMETERS name type
は調べてみてもいまひとつ使い方がわかりません。
SQLの関数なのでしょうか?

どちらにしろ、この書き方ではOpenQuery内がすべて文字列として認識されるので
パラメータは使えないようです・・・

アドバイスありがとうございました。
ほむら
ぬし
会議室デビュー日: 2003/02/28
投稿数: 583
お住まい・勤務地: 東京都
投稿日時: 2003-11-11 13:16
ども、ほむらです。

OpenQuery調べてみたんですけどこれってSQLを
リンクサーバー側に処理させる関数なのですね。
PARAMETERSはJetデータベースエンジンのSQLなので。。
DB2では処理できないとおもいます^^;;;
1

スキルアップ/キャリアアップ(JOB@IT)