• ベストアンサー

EXEで実行すると発生するORA:06413エラー

VBからORACLEへ接続するプログラムを作っています。 VBのエディット画面から実行すると正常に動作するのですが、コンパイルを行いEXEから実行すると下記エラーが発生します。 「Fatal NI connect error 6413,」 以下のOpenDatabaseでエラーが発生しているところまでは突き止めたのですが なぜエラーとなるか、まったく検討がつきません。 Set objOr = CreateObject("OracleInProcServer.XOraSession") Set objDb = objOr.OpenDatabase(mstrSVN, mstrUID & "/" & mstrPWD, 0&) どんなささいな情報でもお持ちの方、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.3

他の会議室ですが・・・同様な症状が発生してる履歴がありました。

参考URL:
http://www7.big.or.jp/~pinball/discus/oracle/35194.html
ahsblue
質問者

お礼

すばらしい回答ありがとうございます。 自分のEXEを置いてるディレクトリはバージョン管理の関係上、半角括弧を使用していました。 試しにディレクトリ名の括弧をとってみると正常動作を確認できました。 くるくるORACLEは良く見ていたつもりでしたが、見落としていたようです。(反省)

その他の回答 (2)

noname#1752
noname#1752
回答No.2

私はこのように接続しています。 '** サービス、ユーザ設定 dbname = "FMW001" cnuser = "fmwuser/fmwuser" '// Oracle サービス名(別名)、ユーザ・パスワード指定 '** oo4o 接続 Set GoORASESSION = CreateObject("OracleInProcServer.XOraSession") Set GoORADATABASE = GoORASESSION.OpenDatabase(dbname, cnuser, 0&) おんなじですよね。。。 ちなみに 「OpenDatabase」を「DbOpenDatabase」と変えてみてはどうでしょうか

参考URL:
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/as_s20.htm
ahsblue
質問者

お礼

回答ありがとうございます。 DbOpenDatabase()で試してみましたが、事象変わらずでした。 他に手はないでしょうか? よろしくお願いします。

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

田吾作7@オラクルインストール中です。。。 EXEにしたらうまくいかない? そういう状況を聞いた事がありませんが・・・ DB,UserID,PassをVBでテスト用にパラメータを直打ちで設定してませんか? デバッグ用のプログラムが入ってませんか? On Error Resume Next Set objOr = CreateObject("OracleInProcServer.XOraSession") If objOr Is Nothing Then   MsgBox "CreateObject失敗" End If MsgBox "DBオープンパラメータ [" & mstrSVN & "][" & mstrUID & "][" & mstrPWD & "]" Set objDb = objOr.OpenDatabase(mstrSVN, mstrUID & "/" & mstrPWD, 0&) If objDb Is Nothing Then   MsgBox "OpenDatabase失敗" End If On Error GoTo 0 Exit Sub コンパイルしてデバッグしてみてください。

ahsblue
質問者

補足

回答ありがとうございます。 全く同じEXEを他のマシン(Win98)で動かしたところ正常に動作しましたのでパラメータミスやデバッグモードでの動作ではないことは確認がとれています。 他に手はないでしょうか? 参考(マシン環境) OS : Windows2000 Profesional SP2適用 VB : VisualBasic6.0 SP5適用 DB : Oracle8.1(DB本体はLinuxで動作で、Net8経由で接続)

関連するQ&A

  • DBの接続について

    昨日も同じ質問したのですが また、助けてください DBの接続状態がしりたいのですが DBの接続状態を認識させるために If OraDatabase.State = adStateClosed Then DB_Connect End If ってコーディングいたしました が、一行目でエラー発生でその後の処理が 通りません DB接続部はこんな感じです。 Private Sub DB_Connect() On Error GoTo ERR Set OraSession = CreateObject("OracleInProcServer.XOraSession") Set OraDatabase = OraSession.OpenDatabase("ALARM", "ALARM/SHINKO", 0&) End Sub どうか助けてください お願いします 開発環境VB6.0 DBはオラクル9iです

  • オープン時にエラーが出て接続できません

    はじめまして、ご存知の方ご教示ください。 当方、Oracleの勉強の為、OracleのDBを作成してみようと思いやってみました。 苦労して何とかテーブルまで作成できたつもりなのですが、VB6で OpenDatabaseの関数を使用後下記のエラーが発生してしまいます。  オラクルセッションおよびデータベースオープン時にエラーが発生しました。  エラー番号:440  エラー内容:接続できません。ORA-12154:TNS:接続された接続識別子を解決できませでした ソースは Dim A_OSE As Object Dim A_ODB As Object Set A_OSE = CreateObject("OracleInProcServer.XOrasession") Set A_ODB = A_OSE.OpenDatabase("EMP", "SCOTT/tiger", 0) です。詳しい方ご教示いただけないでしょうか? 何かDBの方でも確認する個所がありましたらご教示いただけないでしょうか? 尚、フリーのツールで接続を行うと接続できて、各データの内容も参照でします。 よろしくお願いします。 ユーザー名:SCOTT パスワード:tiger オブジェクト名:EMP バージョン OS:Win2000ProSP4 VB6 SP6 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0

  • VB6(SP5)+OO4OでCreateObjectが失敗する

    上記の環境でプログラムを作成しています。 Windows2000ではうまくいきました。 WindowsXP(Professional)で失敗します。 Set OraSession = CreateObject("OracleInProcServer.XOraSession") Set OraDatabase = OraSession.OpenDatabase(C_ORACLE_TNS, C_ORACLE_USER & "/" & C_ORACLE_PASS, 0) のようなコーディングでCreateObjectのところで失敗しエラーとして429 ActiveX コンポーネントはオブジェクトを作成できません。 というのが発生します。 Oracleのバージョンは9iでそのクライアントパック9.2.0.1.0を管理者モードでインストールしています。 もちろんOO4Oはインストールされていますし、VBの参照設定でOracle InProc Server 4.0 Type Libraly を追加しています。 何度か再インストールなどしましたが全く同じです。何がいけないのでしょうか?直接回答でなくてもヒントでも何でも教えてください。 なおSQL Plusでテーブルの参照はできています。

  • VBAでoo4oを使用してINSERTする際にエラーが発生

    Excelのマクロでoo4oを使用してINSERTをしようとしています。 Dim OraSession As OraSession Dim OraDatabase As OraDatabase Set OraSession = CreateObject("OracleInProcServer.XOraSession") Set OraDatabase = OraSession.OpenDatabase(TNS, USER/PASS, 0&) OraSession.BeginTrans OraDatabase.ExecuteSQL("Insert Into tablename ( colum1, colum2) VALUES( '12345', '1234');") OraSession.BeginTrans OraDatabase.ExecuteSQLでINSERTしようとした場合に、「ORA-00911: 文字が無効です。」とエラーになってしまいます。 同じSQL文をSQL PLUS+で実行させた場合、正常にINSERTができます。 何か特別な処理をしないといけないのでしょうか。 よろしくお願いします。

  • vbからoracleへの接続

    vbからoracleへの接続について教えて下さい。 ORACLEデータベースにoo4oを使って接続をしているのですが、Oracleクライアントをインストール済みのPCでは何ら問題なく接続できます。 OracleクライアントをインストールしていないPCではエラーメッセージがでてしまいます。 処理はこんな感じです... Public ssOra As Object       Public dbOra As OraDatabase Public dynOra As OraDynaset Set ssOra = CreateObject("OracleInProcServer.XOraSession") Set dbOra = ssOra.OpenDatabase("HRH", "HRH00/HRH00", 0&) Set dynOra = dbOra.DbCreateDynaset("select * from 消耗品_注文履歴", 0&) Set ssOra... のところでエラーとなってしまいます。エラー内容は ********実行時エラー'429'***************************** ActiveXコンポーネントはオブジェクトを作成できません ************************************************** activeX,oracle関連のDLLファイルは参照設定に登録しています。 これを解決するためにはOracleクライアントをインストールするしかないのでしょうか? また、インストールしたらエラーは本当になくなるのでしょうか? 皆様宜しくお願いします。 ちなみにクライアントPCはOS:WIN95 oracleバージョン8.1.7です

  • VB6でのPL/SQLの実行について

    現在VB6(SP6)でORACLEのデータベースに接続後、プロシージャを実行してOUTのパラメータを取得したいと思ってプログラムを作っております。 ORACLEへの接続はいろいろ調べてできたのですが、プロシージャの実行(呼び出し)のしかたがわからず困っております。 PL/SQL(プロシージャ名"TEST_DATA") out1 = TEST(OUTパラメータ1) out2 = これはテストです。(OUTパラメータ2) VB6(SP6) Dim OraSession As OraSession Dim OraDatabase As OraDatabase Dim OraDynaset As OraDynaset Dim P1 AS String Dim P2AS String '接続処理 Set OraSession = CreateObject("OracleInProcServer.XOraSession") Set OraDatabase = OraSession.OpenDatabase("TEST", "TEST/TEST DB_DEFAULT) OraSession.BeginTrans 'ここでPL/SQLを実行して、パラーメタを取得したいです。 '取得したパラメータをセット P1 = パラメータ1(TEST) P2 = パラメータ1(これはテストです。) OraSession.CommitTrans '結果表示 Call MsgBox(P1 & "結果" & P2) ご教授のほどをお願いいたします。

  • ASP.NETにおいて単純にオラクルDBに接続する方法

    Private mvarSession As Object Private mvarDatabase As Object ''データベースの生成() mvarSession = CreateObject("OracleInProcServer.XOraSession") '' データベースオープン mvarDatabase = mvarSession.OpenDatabase("SERVER", "○○○/○○○") と記述していますが、動作しません。。。 オラクルDBに接続する方法のご教授をお願いします。

  • Access2003 実行時エラー429

    Windows7 Pro 32bit で Office Personal 2010がプリインストールされているPCにAccess2003をインストール したくて、まずOffice Personal 2010をアンインストールしてAccess2003をインストールしたのですが Set XXX = CreateObject("OracleInProcServer.XOraSession")で実行時エラー429 ActiveXコンポーネントはオブジェクトを作成できません とエラーがでます。サイトで regsvr32 "C:\Program Files\Common Files\Microsoft shared\DAO\DAO360.DLL"をすればたいていはOKとあったので実施したのですが 結果は同じです。Office Personal 2010をアンインストールしても C:\Program Files\Common Files\Microsoft shared\Office14フォルダが残ったままなのが気になってます。色々サイトを調べたのですが解決できない状況です。どなたかご教授お願いいたします。

  • VBで作成したEXEを実行するとエラーになってしまいます

    いつもお世話になっています。 早速ですが、VB6.0で作成したEXEを実行すると、 DB(Oracle)に接続する際、接続できなくなってします。 デバックモードでは(F8のステップ実行でもF5"開始"でも)問題なく処理が実行されるのですが、 変数も何も変更しないのに、接続できない時のリターンコードが返されます。 実行時のDBへの接続状況を確認しても自分以外接続していませんでした。  接続用のサブルーチンは他の人が作成したものですが  他のプログラムでは正常に動作します。  接続する直前でMSGBOXで接続する引数を表示してみたの  ですが違いはありませんでした。 このプログラムでは、 (1)CreateObjectでEXCELファイルをOpenして、   データ読込   Application.workbooks.closeでDocumentをクローズ (2)CreateObjectでOOfO(Oracle for object for OLE)でOracleに接続します。 この段階でOracleへの接続がエラーになってしまいます。 デバックモードとEXEからの実行でなにか違いがあるのでしょうか? プログラムの製造が先に進まなくて大変困っています。 誠に申し訳ないのですが、誰かわかる方がいましたら、 直ぐに回答をお願いします。

  • VBで作成したパッケージを実行すると実行時エラー'429'が発生してしまいます。

    VBにてcsvファイルのデータをOracleデータベースにinsert、updateするプログラムを作成し、開発パソコンにて正常に動作することを確認しました。 開発パソコン ・Windows2000 Server(SP3) ・Visual Basic 6.0 Enterprise Edition ・Oracle 9i 本番パソコン ・Windows2000 Server(SP3) ・Oracle 9i テストパソコン ・Windows2000 Professional(SP1) 今、上記のように3台のパソコンがあります。 開発パソコンで開発したVBのプログラムをコンパイルしてexeを作成し、開発パソコン上から開発パソコン上のオラクルに対してプログラムを実行すると正常に動作します。 本番パソコンには、Visual Basicをインストールしていないため、プログラムを実行できるようにするには開発パソコンにてディストリビューションウィザードを使ってセットアッププログラムを作成し、本番パソコンにインストールする必要があると思います(質問1.ここまでは正しいですよね??)。 そこでウィザードに沿ってセットアッププログラムを作成し、まずはテストパソコンにてインストール後に実行してみたのですが、エラーが出てしまいました。 「実行時エラー'429' ActiveX コンポーネントはオブジェクトを作成できません。」 質問2.どうすればエラーが発生することなくプログラムを実行できるようになるでしょうか? テストパソコンにオラクルクライアントが必要?それとも何かDLLの更新などが必要? もしおわかりの方いらっしゃいましたら教えて下さい。 よろしくお願いします。

専門家に質問してみよう