4 Replies Latest reply: Nov 1, 2012 3:11 AM by 971612 RSS

    VBSでoo4oを使用してoracle接続

    971612
      oo4oについて質問です。

      VBSからoo4oを使用してoracleに接続してストアドを実行したいです。

      ローカル(自端末)からVBSを実行すると、問題なくストアドが実行でき戻り値も受け取れます。

      ですが、そのVBSをサーバ上で動作しようとすると、セッションを生成する際に
      「ActiveXコンポーネントはオブジェクトを作成できません」
      のメッセージが表示されてしまいます。

      サーバにはoo4oがインストールされていなかった為、
      以下のサイトより「ODTwithODAC1020221.exe」を入手して、oo4oのみを選択しインストールしました。

      http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html

      インストールが正しくできてるかも確認ができていない状況です。

      oo4oのインストール時にすること、注意することなどご教示いただけないでしょうか?



      以下の情報で足りなければご指摘ください。

      ■サーバ:Windowsserver2008r2 64bit
      ■oracle:10g EE 10.2.0.5.0 64bit
      ■ローカル:WindowsXP Pro SP3

      ■エラー箇所のソース
      Function change_format(ls_rcvfile)
           Dim oraSess
           Dim oraDb
           Dim mySQL
           Dim ls_ret

           On Error Resume Next

           ls_ret = 0

           ' セッションオブジェクト作成
           Set oraSess = CreateObject("OracleInProcServer.XOraSession")
           If Err.Number <> 0 Then
      ここのメッセージが表示されます。→msgbox "[oraSess][ERROR][ファイル名]" & ls_rcvfile & ":[メッセージ:]" & Err.Description
           End If

           ' oo4oDB接続
           Set oraDb = oraSess.OpenDatabase(ORADB_NAME, ORADB_USER & "/" & ORADB_PASS, ORADB_DEFAULT)
           If Err.Number <> 0 Then
      ここのメッセージが表示されます。→msgbox "[oraDb  ][ERROR] [ファイル名]" & ls_rcvfile & ":[メッセージ:]" & Err.Description
           End If

           ' 実行SQL作成
           mySQL = "BEGIN PKG_FFCDB_MAIN.SP_MAIN_PRO(:av_file_name ,:av_file_path ,:av_result); END;"

           ' ストアドプロシージャパラメータ設定
           oraDb.Parameters.Add "av_file_name",ls_rcvfile,1
           oraDb.Parameters("av_file_name").ServerType = 9
           oraDb.Parameters.Add "av_file_path",ORADB_DIR,1
           oraDb.Parameters("av_file_path").ServerType = 9
           oraDb.Parameters.Add "av_result",,2
           oraDb.Parameters("av_result").ServerType = 9

           ' ストアド実行
           oraDb.DbExecuteSQL(mySQL)
           ls_ret = oraDb.Parameters("av_result").value

           ' パラメータ開放
           With oraDb.Parameters
                .Remove "av_file_name"
                .Remove "av_file_path"
                .Remove "av_result"
           End With

           ' DB切断
           oraDb.Close
           oraDb = Nothing
           oraSess = Nothing

           change_format = ls_ret
      End Function