PL/SQL ビルダーの作成(5) : プロシージャの実行 : 【VB.NET】

↓ソースコードのダウンロード

ブラウザでダウンロード

引数指定と実行時エラー
ユーザ側(使用者)から見れば、FUNCTION の実行と同じですが、
コードとしてはストアードの実行処理として記述されています

			build_Handle.PrepareText(Query)
			If Not build_Handle.CallProc() Then

				Dim ErrLine As String() = (build_Handle.myError).Split(ControlChars.Lf)
				For I As Integer = 0 To ErrLine.Length - 1
					If ErrLine(I) <> "" Then
						Me.LboxGrid1.AddRow()
						If I = 0 Then
							Me.LboxGrid1.SetColumnText(0, "CALL")
						End If
						Me.LboxGrid1.SetColumnText(1, ErrLine(I))
					End If
				Next

				' カーソルとウインドウをを元に戻す
				Me.Cursor = Cursors.Default
				exec_Handle.Close()
				Exit Sub
			End If

			Me.LboxGrid1.AddRow()
			Me.LboxGrid1.SetColumnText(0, "PROCEDURE")
			Me.LboxGrid1.SetColumnText(1, ProcName)
			Me.LboxGrid1.AddRow()
			Me.LboxGrid1.SetColumnText(0, "CALL")
			Me.LboxGrid1.SetColumnText(1, "実行開始")

ビルド時のエラーの表示
select * from USER_ERRORS で対象コードの最も最近のエラーを
取得します

	' ******************************************************
	' PLSQL のエラーの詳細を表示する
	' ******************************************************
	Private Sub ListPLSQLError(ByVal target As String)

		' 既に一度インスタンスが作成されている場合
		If Not db Is Nothing Then
			db.CloseAndDispose()
		End If

		' Oracle 用インスタンス作成
		db = New DbOracle( _
		 Server + "/" + Service, _
		 User, _
		 Pass _
		)

		' 接続
		If Not db.Connect() Then
			LboxText.MessageError("接続に失敗しました")
			Console.WriteLine(db.myError)
			Exit Sub
		End If

		DbHelper.dic.Clear()
		DbHelper.dic.Add(0, target)
		Dim Query As String = DbHelper.GetSqlDic("..\..\データ\proc_error.sql")
		' 内容を確認する為に、コンソールに出力しておく
		Console.WriteLine(Query)

		' 読み出し
		If Not db.Query(Query) Then
			Console.WriteLine(db.myError)
			db.Close()
			Return
		End If

		' ******************************************************
		' 表示エリアのリセット
		' ******************************************************
		Me.LboxGrid1.Reset()
		Me.LboxGrid1.ColumnHeadersHeightSizeMode = _
		  DataGridViewColumnHeadersHeightSizeMode.EnableResizing
		Me.LboxGrid1.AddColumn("LINE", "行")
		Me.LboxGrid1.AddColumn("TEXT", "【" + target + "】 のエラーメッセージ")

		' LboxGrid にデータを追加
		Do While db.Read()

			Dim ErrLine As String() = (db.GetValue("TEXT")).Split(ControlChars.Lf)
			Dim LineString = db.GetValue("LINE")
			For I As Integer = 0 To ErrLine.Length - 1
				If ErrLine(I) <> "" Then
					Me.LboxGrid1.AddRow()
					Me.LboxGrid1.SetColumnText("LINE", LineString)
					Me.LboxGrid1.SetColumnText("TEXT", ErrLine(I))
				End If
			Next

		Loop

		' 接続解除
		db.Close()


	End Sub