• 締切済み

SQLServer・ストアドプロシージャでファイル出力したい

こんにちは、いつもお世話になります。 今回はじめてストアドプロシージャというものをプログラムしているのですが、デバッグの方法がよくわかりません。 したい処理は練習として「あるテーブルのデータを検索し、その結果をCSVに出力する」という簡単なものなのですが、クエリアナライザで実行すると「コマンドは正常に終了しました。」というメッセージが出ているにもかかわらず出力されるべきテキストファイルはまったく存在しません。 そこでクエリアナライザのオブジェクトブラウザから該当ストアドプロシージャを選択し、右クリックのメニューで出てくる「デバッグ」という機能を試してみたのですが、そうすると以下のエラーメッセージが出てきました。 ODBC: メッセージ 0、レベル 16、状態 1 [Microsoft][ODBC SQL Server Driver][SQL Server]DLL mssdi98.dll がロードできないか、参照している DLL の 1 つがロードできません。理由 : 126(指定されたモジュールが見つかりません。)。 ・・・意味が良くわからない上に、何行目でエラーになっているのかもわかりません。ためしにある変数に値をセットする一行目以外すべてコメントにして実行してみたのですが、同じメッセージが表示されます。 ・・・おそらく、ストアドプロシージャを実行する前から何らかの理由でエラーになっていると思うのですがこの現象についておわかりの方いませんでしょうか?

みんなの回答

noname#4564
noname#4564
回答No.3

> regsvr32 sqldbg.dll というコマンドをコマンドプロンプトで実行しようと > してエラーになりました。エラーメッセージは「モジュールがみつかりません」 > というエラーです。 フルパス指定してはどうでしょうか?(たぶん、パスが通っていないと思うので) また、最初に、コンポーネントを削除してから再登録した方がよいのでは? (1) RegSvr32 /U "C:\Program Files\Microsoft SQL Server\MSSQL\Binn\sqldbg.dll" (2) RegSvr32 "C:\Program Files\Microsoft SQL Server\MSSQL\Binn\sqldbg.dll" の順でどうでしょうか? (これでもダメなら、再インストールしかないかも・・・)

saeyui
質問者

お礼

ありがとうございます。 ・・・やっぱりダメでした。 今回は忙しいのでデバッガはあきらめましたが、どこか暇を見つけて再インストールしてみます。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.2

mssdi98.dll を Windowsのフォルダのsystemかsystem32の下に コピーしてみたらどうでしょうか?

saeyui
質問者

お礼

ありがとうございます。 両方にコピーして試してみましたが、ダメでした・・・。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

多分、必要なDLLが見つからないか、バージョンが古いため読み込めず、実行自体できない状態だと思われます。 mssdi98.dll は HDDの中にありますでしょうか? また、あった場合は、どこにありますでしょうか?

saeyui
質問者

お礼

ありがとうございます。検索してみました。 以下の場所にありました。 C:\Program Files\Microsoft SQL Server\MSSQL\Binn あと、自分で探した情報で http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/trblsql/tr_servtools_5cfm.asp というものを見つけました。まさに今の現象のトラブルシューティングだったのですが、指定どおりに実行してもうまくいかない状態です。 これの「サーバーとクライアントが異なるコンピュータの場合」という手順を作業しているのですが、クライアント側手順3「次に、ファイルを登録します」で、 regsvr32 sqldbg.dll というコマンドをコマンドプロンプトで実行しようとしてエラーになりました。エラーメッセージは「モジュールがみつかりません」というエラーです。