Date: Wed, 26 Jun 2002 16:48:58 +0900
From: "s sakura" <who@example.com>
水口様、ありがとうございます。
ご紹介いただいたサイトのサンプルコードを
Access2000ADPのモジュールで試してみました。
[実行時エラー'3704':オブジェクトが閉じている場合は、操作は許可されません。]
のエラーメッセージも正常に表示されましたし、
'Uncomment the next line with the SQLOLEDB provider to fix the error.
'.Open "SET NOCOUNT ON"
に従いコメントを外したことで、エラーがなくなり結果セットの出力もできました。
解説が英文なので自信がありませんが自分なりの解釈を申し上げますと。。
SQLOLEDBは呼び出し元に正確な結果を要求するのに対し、
MSDASQLはSELECT文以外の結果を返せないため、
ストアド内に更新系SQL文があるとエラーが発生して
最後のSELECT文の結果セットを受け取れなくなるのではと思いました。
"SET NOCOUNT ON"はSQLOLEDBの結果カウントを抑止して
更新系SQLの結果がとれないエラーを防いでくれるのかな、と。
(間違っていたらご指摘ください。)
ちなみにサンプルコードのストアドを、更新系のSQL文を抜いて
既存テーブルのSELECT文だけにした場合
'.Open "SET NOCOUNT ON"
のコメントを外さなくてもエラーにならず結果セットを出力できました。
ですが水口さんがずっと SET NOCOUNT ON を指定して問題ないのなら
指定するにこしたことはないのでしょうね。
それにしても、このサンプルコードのCommandオブジェクトの使い方
とても参考になりました(ADOで"go"が使えることも初めて知りました)。
重ねて御礼申し上げます。
Sakura
_________________________________________________________________
インターネットをぶらぶらショッピングするなら MSN ショッピングへ
http://shopping.msn.co.jp/
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|