↓ソースコードのダウンロード ブラウザでダウンロード 引数指定と実行時エラーユーザ側(使用者)から見れば、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 |