SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Oracle Tips

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

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

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

本稿では、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を入力しボタンを押下します。

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

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

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
IISを使用したデバッグ

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Oracle Tips連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1491 2007/07/19 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング