はじめに
Visual Studio 2005からOracleを操作するではOracle Developer Tools for Visual Studio(以下、ODT)のセットアップからWindowsフォームでのストアドプロシージャのデバッグまでを解説しました。
今回はASP.NETからストアドプロシージャの透過的なデバッグについて紹介します。 Webアプリケーションを構築する際には非常に重要な手段となりますので是非ご活用ください。
対象読者
- Visual Studio 2005を使用したことのある人。
- Oracleデータベース対応アプリケーション開発に興味のある人。
必要な環境
Visual Studio 2005 Standard Edition以上が必要です。OracleのEditionはStandard Edition ONE以上から利用可能です。また、「Visual Studio 2005からOracleを操作する」に従い、以下の環境が必要になります。
- ODTがインストールされ、SCOTTユーザでのデバッグが可能となっていること
- およびIISを使用する場合、ローカルWindows上にIISがセットアップされ、サービスが開始されていること
- 前回作成したGETEMPNAMEストアドプロシージャがODT上でデバッグできること
- VS 2005オプションウィンドウでSCOTT接続のチェックボックスがONになっていること
ファイルシステム形式でのデバッグ
ファイルシステムとして作成したWebアプリケーションの場合、WebサーバとしてASP.NET開発サーバを使用します。この場合はWindowsフォームで作成した場合と同様の手順でデバッグ可能です。具体的には以下のような手順となります。
- ブレークポイントの設定
- 「ツール」メニューの「Oracleアプリケーションのデバッグ」をチェック
- デバッグ開始
VS2005で新しいWebサイトを作成し、場所に「ファイルシステム」を選択します。
次に、.NETからOracleへ接続するためのデータ・プロバイダであるODP.NETを参照設定に追加します。ODP.NETの参照設定は、VS 2005のメニューより[プロジェクト]-[参照の追加]を選択し、.NETタブより[Oracle.DataAccess]を選択して行います。
「Default.aspx」にツールボックスからテキストボックスを2つとボタンを1つ配置します。
ボタンのClickイベントにプロシージャを呼び出すコードを記述します。
Imports Oracle.DataAccess.Client Imports Oracle.DataAccess.Types Imports System.Data Partial Public Class _Default Inherits System.Web.UI.Page Private Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) _ Handles Button1.Click 'データベース接続 Dim conn As New OracleConnection( _ "User Id=Scott;Password=Tiger;Data Source=orcl10gr2") conn.Open() Dim cmd As New OracleCommand("GETEMPNAME", conn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Add("PARAEMPNO", OracleDbType.Int32 _ , ParameterDirection.Input) cmd.Parameters("PARAEMPNO").Value = CInt(TextBox1.Text) cmd.Parameters.Add("PARAMENAME", OracleDbType.Varchar2 _ , 10, "", ParameterDirection.Output) 'ストアドプロシージャの実行 cmd.ExecuteNonQuery() TextBox2.Text = cmd.Parameters("PARAMENAME").Value.ToString 'Close conn.Close() conn.Dispose() End Sub End Class
OracleエクスプローラからGETEMPNAMEストアドプロシージャを開き、ブレークポイントを設定します。
「ツール」メニューから「Oracleアプリケーションのデバッグ」にチェックを入れます。
デバッグを実行します。このとき、デバッグ実行に関する警告が表示された場合は[OK]をクリックします。
Webページが表示されたら、テキストボックスに任意のEMPIDを入力しボタンを押下します。
するとストアドプロシージャ内のブレークポイントで停止します。クイックウォッチ等で変数の内容を確認することも可能です。
デバッグを再開すると氏名がテキストボックスに表示されます。