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

 
RE:  TSQL のデバッグについて

Date: Thu, 28 Sep 2006 13:03:44 +0900
From: "Akira Horikawa" <who@example.ne.jp>


堀川です、こんにちは

-----Original Message-----
From: "堀江" "正浩" [mailto:who@example.ne.jp]
Sent: Thursday, September 28, 2006 12:55 AM
To: who@example.ne.jp
Subject: [ml-msde-beg:01867] TSQL のデバッグについて


>SQLSERVER7.0 & ACCESS2000 でシステムを作っています。
>(略)
>その際の難点は、ストアドプロシージャー(TSQL)側に、バグが潜んでいて、
>それを容易に(私の技術不足の為)発見できないのです。
>ACCESSなどは、IDEで容易にデバッグが出来るので、
>そんなツールは無いのかな?とお聞きした次第です。


SQL Server 7.0 の場合であれば、 Visual Studio の中に、T-SQLデバッガ
が付属していますので、それを使うことになります。

Visual Basic 5.0 からストアド プロシージャをデバッグする際のヒント
http://support.microsoft.com/kb/170496/ja

SQL Server 2000 Service Pack 3 のインストール後に以前のクライアントに対して
 T-SQL デバッガがデフォルトで無効になる
http://support.microsoft.com/kb/328151/ja


SQL Server 2005 であれば、Visual Studio 2005 と組み合わせます。




>今、現行で行っている方法としては、バグがありそうな箇所の下に
>RAISERROR(変数の状態 ,10,1) WITH LOG
>などとして、イベントログに書き込み、
>ストアドプロシージャーの実行状況試験を行っております。
>
>もっとスマートな方法があれば、ご教授いただきたく
>よろしくお願いいたします。


バグのありそうな箇所に「ログを書き込む」という方法は、それ自身は
間違っていません。

ただ「バグがありそうな箇所」という考え方は、サーバーのシステム開発
では、良くありません。

開発しているシステムの内容によって、多少程度の差はありますが、
現在のサーバーの動作状況を逐一報告できるようなシステムが
理想です。


サーバーで動作するアプリケーションは、通常は、GUI画面などを
表示しませんので、どのような状態で動いているのか、その内部
動作状況を把握するのは難しいです。

ですから、イベントログなどを利用し、現在の動作状況を外部に
報告しています。

デバッグ目的だけではなく、通常時でも、ストアドプロシージャに
渡されたパラメータの値を出力したり、ストアドの実行結果を
記録したりして、動作状況が分析できるようにしましょう。

デバッグレベルの番号に応じて、動作記録が、詳細情報出力から
要約程度の出力まで、制御できるようにすれば、もっと良いです。

このようにすれば、お客様に製品を納品した直後は、デバッグレベルを
詳細設定にして、動作状況を監視し、問題が無いようならデバッグレベルを
要約出力に戻したりします。
ただこのようなシステム開発をすると、当然開発コストは上がります。
最終的には、開発コストや時間との相談になります。


せっかくデータベースを使っていますので、デバッグ記録用のテーブルを
準備し、そのテーブルに実行結果を残していく方法も有効です。

ただトランザクションがロールバックされたら、デバッグ記録もロールバック
され消えてしまうことになりますので、注意が必要です。


トランザクションがロールバックするときの、その事実をテーブルに記録する方法に
ついて
http://www.horikawa.ne.jp/cgi-bin/showlog.cgi?kd=1&no=1440

などの方法を利用します。



------------------------------------
Epata-IT/日本技術ソフト開発
        堀川 明  (Akira Horikawa)
    09月28日(木曜日) 13時03分記
        mailto:who@example.ne.jp
        http://www.horikawa.ne.jp/msde/



[MSDE/SQLServerに関して、今、どんなことにお困りですか?]
よろしければお困りの内容を、電子メールで教えて下さい。
質問を電子メールで作成する


[ウィンドを閉じる]

[MSDE/SQLServer FAQ ]

[MSDE / MSDE2000 技術サポート情報一覧]

MSDE TOP ページに移動する

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