こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ADOからSQLのEXISTSの結果(もしくは変数)を取得

ASPからADOを使用して、SQLサーバー上のデータを参照する場合に、通常SQLステートメントを Connection::Execute() に渡して、レコードセットを受け取るのが普通だと思いますが、たとえば、EXISTS() の結果(有るか無いか)を取得することは出来ないでしょうか。

代替え案として、SELECTを行い、レコードセットの件数が0か否かで判断することも出来るとは思いますが、もしテーブルが膨大であった場合や、結果が膨大であった場合に、総当たり判定コストや通信コストがかかってしまうのを懸念しています。

また、それ以外にSQL中で使用した変数の内容をADO側に渡す方法は有るのでしょうか。(これが出来れば問題ないのですが、、、)

結果用のテーブルを作成して、そこからSELECTしてレコードセットで返す。位しか思いつきません。
宜しくお願いいたします。

開発環境は:
Windows 2000 Server / IIS 5.0 / ASP
Microsoft SQL Server 2000 and 7.0
Microsoft Internet Explorer 6.0sp1

投稿日時 - 2003-08-29 10:53:37

QNo.640617

すぐに回答ほしいです

質問者が選んだベストアンサー

>レコードセットを受け取るのが普通だと思いますが、たとえば、
>EXISTS() の結果(有るか無いか)を取得することは出来ないでしょうか。

1.ストアドを作成する(Transact-SQL)

2.Oracleのdual表のような、レコードが1件だけ存在するようなテーブルを作成しておいてexistsする

select 'X' from dual where exists(select 'X' from 調べたいテーブル)

dualからのレコードが1件取得されたらあり、0件だったらなしと判断できます。

>また、それ以外にSQL中で使用した変数の内容をADO側に渡す方法は有るのでしょうか。
>(これが出来れば問題ないのですが、、、)

SQL中で使用した変数とはなにをさすんですか?
通常のSQLでパラメータを使用というと、クライアントから
サーバに渡す方しかないと思うんですが。

ちなみに、ADOならストアドのパラメータなら入力も出力も受け取れますよ。

投稿日時 - 2003-08-29 11:59:47

お礼

御回答ありがとうございました。
御回答を元に、調べましたところ、ストアドプロシージャを使用して何とかなりそうな見通しが立ちました。
有り難うございました。

投稿日時 - 2003-08-29 17:45:08

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問