MSDE FunClub
Microsoft Data Engine FunClub
MSDE初心者向けメーリングリスト過去ログ[344]番
 
[TOP]>[MSDE初心者向けメーリングリスト過去ログ(344番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
Re: SET NOCOUNT ON  の効果について

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 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。