Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

ASP.NETからPL/SQLをデバッグする

Oracle Developer Tools for Visual Studio(ODT)の利用

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2007/07/19 14:00

本稿では、ASP.NETからストアドプロシージャの透過的なデバッグについて紹介します。Visual Studio 2005にODTをセットアップすることで、ASP.NETからのデバッグが可能になります。 ASP.NET開発サーバーおよびIISを使用した場合、双方の手順を解説します。

目次

はじめに

 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フォームで作成した場合と同様の手順でデバッグ可能です。具体的には以下のような手順となります。

  1. ブレークポイントの設定
  2. 「ツール」メニューの「Oracleアプリケーションのデバッグ」をチェック
  3. デバッグ開始

 VS2005で新しいWebサイトを作成し、場所に「ファイルシステム」を選択します。

 次に、.NETからOracleへ接続するためのデータ・プロバイダであるODP.NETを参照設定に追加します。ODP.NETの参照設定は、VS 2005のメニューより[プロジェクト]-[参照の追加]を選択し、.NETタブより[Oracle.DataAccess]を選択して行います。

 「Default.aspx」にツールボックスからテキストボックスを2つとボタンを1つ配置します。

 ボタンのClickイベントにプロシージャを呼び出すコードを記述します。

PL/SQLストアドプロシージャをコールするサンプル
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を入力しボタンを押下します。

 するとストアドプロシージャ内のブレークポイントで停止します。クイックウォッチ等で変数の内容を確認することも可能です。

 デバッグを再開すると氏名がテキストボックスに表示されます。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 日本オラクル 三谷(ミタニ リョウタ)

    日本オラクル株式会社クロスインダストリーSC部所属。 Windows環境でのOracle製品、特に.NET+Oracleデータベース開発を更にメジャーにするべく日夜思索中。 Oracle Directでは、「旧バージョンのオラクルを最新バージョンへ移行したいがどうしたらいいか分からない」、「パフ...

バックナンバー

連載:Oracle Tips

もっと読む

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5