「一気に最後まで読んだ」本、教えて下さい!

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

A 回答 (1件)

>レコードセットを受け取るのが普通だと思いますが、たとえば、


>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ならストアドのパラメータなら入力も出力も受け取れますよ。
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/08/29 17:45

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