OLEDB.NETで接続できない

このQ&Aのポイント
  • OLEDB.NETを使用してOracleに接続できないエラーが発生しています。
  • ODP.NETでは接続ができているが、EXE単体実行時には接続エラーが発生するという状況です。
  • 接続設定や参照設定を確認しても問題が解決しないため、原因と対処方法を知りたいです。
回答を見る
  • ベストアンサー

OLEDB.NETで接続できない

OS:XP 開発:VB 2008 .NET Framework 2.0 MDAC2.5 DB:Oracle9i(サーバー)、Oracle8i(クライアント) 以下のようにOracle Provider for OLEDBで接続を試みるもエラーに なります。 Dim con As New OleDbConnection() con.ConnectionString = "Provider=OraOLEDB.Oracle;User Id=scott;" & _ "Password=tiger;Data Source=Oracle;OLEDB.NET=True;" con.Open 結果は、「'OraOLEDB.Oracle'プロバイダーはローカルのコンピュータ に登録されていません。」のエラーになります。 環境変数のPATHに、[OralceHome]\binは定義されていますし、Oracle Provider for OLEDB はインストールされているのを確認しました。 因みにですが、ODP.NETでの接続ができるのですがよく分からない 状態です。あまり.NETやOracleの知識がないので詳しく伝えれないの ですが、デバッグ実行時はエラーになるのに、EXE単体で実行した場合 には問題なく接続できている状態です。ODP.NETは、クライアントが Oracle9R2からだったら使えるようなことがどこかに書いてあったので このようにデバッグ時とEXE単体実行時で異なるのかと思います。 デバッグ時には、接続オープンエラーになります。 そのような経緯でOLEDB.NETでは、正常に動作するであろうと思い修正 に踏み切ったのですが、うまくいきません。.NET側での参照設定などの 設定がいけないのでしょうか?それとも他に原因があるのでしょうか? かなり悩んでいるので原因と対処方法の分かる方がおられましたら、 ご教授よろしくお願い致します。

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

  • ベストアンサー
  • takeshif
  • ベストアンサー率38% (18/47)
回答No.1

Gui toolで接続できるか確認してみては、どうですか。 http://kuronekosoft.ewinds.net/ http://www.hi-ho.ne.jp/tsumiki/

idecchi23
質問者

お礼

開発環境のフォルダーに空白文字などがあると、接続エラーになると いうのをネットを検索していたら出てきました。 解決しました。 ありがとうございました。

idecchi23
質問者

補足

Oracle Provider for OLE DBが正しくインストールされてなかった みたいで、Oracleをインストールし直したら教えていただいたツール で接続できました。ありがとうございました。 ただ、con.Open箇所でデバッグ実行時にエラーになるのは、OLEDB.NET でもODP.NETでも変わりありません。「ORA-06413 接続がオープンして いません。」のエラーが出ます。 .NETの知識がまだまだなのですが、Oracleでは、デバッグ実行できない ものなのでしょうか?SQLServerでは普通にデバッグ実行できるのですが。 教えて下さい。

関連するQ&A

  • ODP.NETのバージョン確認

    ODP.NETのバージョン確認をしています。 machine.configにて、 <DbProviderFactories>   <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=2.111.6.0, Culture=neutral, PublicKeyToken=89b483f429c47342"   /> となっています。 ここで、 Version=2.111.6.0, と記載されていますが、これが、バージョンを 示していると思われます。 このバージョンは、 Oracle Data Provider for .NET 11.1.0.6.20 をインストールしたものと同じ ODP.NETのバージョンになるのでしょうか。 ご教授をお願い致します。

  • VBA Oracle接続について

    現在、Access2013+oo4oでOracle11gのDBに接続しています。 今回、DBをOracle12cに変更しようとしています。 Oracle12cよりoo4oがサポートされなくなり、使用することが出来ないとの事で ODP.NETでの接続に変更しようとしていますが可能なのでしょうか? ちなみに以下を行ったところ、うまくいきませんでした。 (1)Oracle.DataAccess.dllのインストール OracleClientのインストールをカスタムで行い「Oracle Data Provider for .NET」 を個別にインストールしました。結果以下にDllがインストールされました。 C:\app\client\administrator\product\12.2.0\client_1\ODP.NET\bin\ 4\Oracle.DataAccess.dll (2)参照設定で追加 上記のdllをAccess2013の参照設定より参照の追加をしようとすると以下の エラーになりました。 「指定されたファイルへの参照は登録できません」となりました。 以上、宜しくお願いします。

  • VB.NET Oracle接続 32、64bit

    VB.NET 2010でOracle11gに接続するプログラムを作っていますが、 接続方法がいまいちわからずに困っています。 プログラムを動かすサーバーはWindows Server 2008 R2の64bitだったので、 Oracle Clientも合わせた方がいいのかなと思い、64bit版をインストールしました。 ASP.NETのWEBアプリでは以下の接続文字列を用いてADO接続できました。 パラメータ値は例です。 (Web.configに記述) <connectionStrings> <add name="oracle" connectionString="Provider=OraOLEDB.Oracle;Data Source=db1;Password=pass1;User ID=user1" providerName="System.Data.OleDb" /> </connectionStrings> 次に、コンソールプログラムを作成し、同じサーバーで上記と同様の接続文字列で 接続しようとしましたが、エラーとなり接続できませんでした。 いろいろ記述を変えても接続できませんでしたが、最終的にOracle Clientの 32bit版を64bit版と違うフォルダにインストールし、以下の接続文字列で接続 できました。(INIファイルに記載) ConnectionString=Provider=OraOLEDB.Oracle;Data Source=db1;Password=pass1;User ID=user1 この状態でWEBアプリの方は何を使っているのかと思い、64bit版のインストールフォルダを リネームしたところ、WEBアプリの方は接続できなくなりました。 現状では32bitと64bitのOracle Clientが両方必要な状況ですが、本来ならどちらかだけで すむと思います。 32bitと64bitで接続文字列が変わるという情報は得られませんでした。 何がまずいのでしょうか? 最初から32bit版をインストールすれば良かったのでしょうか。

  • ODB.netでの接続環境について

    こんにちわ。質問させていただきたいことがあります。 OS:ローカルデバッグ環境 WindowsXP+SP2 (実際はWindowsServer2003 R2) 開発環境:VS2005(VB.net) .net:2.0.50727 Oracle:10g(10.2.0.1.0) 現在、VB.net+ODP.netで開発を進めております。VS2005でデバッグするため WindowsXPにIISをインストールして環境を作成しました。 最初にOracleClient 10.2.0.1.0のみをインストールして製造作業をすすめており 以下のようなコードで記述し、問題なく動作しておりました。 この場合特に「ODP.net」というコンポーネントをインストールした覚えはありません。 --------------------------------------------------------------------------------------- Imports Microsoft.VisualBasic Imports Oracle.DataAccess.Client Imports Oracle.DataAccess.Types Imports System.Configuration Private cnn As New OracleConnection Private trans As OracleTransaction Dim connectionString As String = "Data Source=xxxx;User ID=xxxx;Password=xxxx" cnn.ConnectionString = connectionString cnn.Open() ------------------------------------------------------------------------------------------ ところが、いろいろなページを参照すると「ODP.net」はインストールが必要とのことだったので、 「ODTwithODAC1020221.exe」というファイルをダウンロードしてインストールしました。 すると参照の追加に「Oracle.DataAccess 2.102.2.20」という行が現れこれを選択すると 「OracleConnection' は、名前空間 'Oracle.DataAccess.Client' では不適切です。 」 というエラーが発生して接続できなくなりました。 教えていただきたいポイントとしては 1.ODP.net接続をする場合は別途インストールする必要があるのでしょうか? それともOracleClientに含まれているのでしょうか? またもし別途インストールする必要があるなら、最初に接続に成功していた場合 はODP.netでは接続していなかったということになるのでしょうか? 2.「ODTwithODAC1020221.exe」というファイルはODACとしてまとめられていますが これがインストールされている場合は逆にOracleClientは必要ないのでししょうか(混在可?)? 3.この発生しているエラーは何を意味しているのでしょうか? ちょっと乱文になりましてすみません。今回オラクルは初めてでいろんなコンポーネント があり、混乱しているようです。 ご教示いただけるかたいらっしゃいましたらお忙しいところすみませんがよろしくお願いいたします。

  • office365でOracle12Cに接続

    Windows10,oracle12c ディスクトップパソコンのソフトをoffice2016(32bit)→office365(64bit)に変更しました。 excelからoracle12cへ接続してデータを取得するマクロでエラーになります。 実行時エラー'3706' プロバイダーが見つかりません。正しくインストールされていない可能性があります。 とのポップアップエラーが発生します。 cn.Open "Provider=OraOLEDB.Oracle;Data Source='" & network & "';User ID=ID;Password=PW;", "ID", "PW" 32bitから64bitのofficeに変更した場合、上記マクロの内容はどの様に記述に変更したらよいのでしょうか?

  • ODP.NET接続不可

    NET Framework Data Provider for Oracle を利用してOracleに接続したいのですが、接続できません。なにが間違っているかが不明です。ご教授願います。 開発言語 VB2005 Oracle Ver 10g R2 OS Windows Xp SP3 MDAC 2.8 Sp1 Oracleへの接続手順 Dim StrCnn As String = "Data Source=ORCL;User ID=system;Pass Word=ooracle" dim ds as system.data.dataset dim strcmd = "Select * From TBL" Using Cn As New OracleConnect(strCnn) Dim Cmd as New OracleCommand(strcmd, Cn) Dim Adp as New OracleAdapter(Cmd) adp.Fill(ds) 実行すると下記のエラーが表示されます。    ORA-12154: TNS:指定された接続識別子を解決できませんでした。" ☆ SqlPulsで接続すると接続はできます。    ユーザ   system パスワード oracle ホスト ORCL 環境変数 %ORACLE_HOME%の値は        c:\oracle\product\10_2_0\client_1

  • windows 2008 server にiisをインストールしてas

    windows 2008 server にiisをインストールしてasp.netを使用しています。asp.netは動作するのですが、oracleへの接続ができません。oracle clientをインストールしsqlplusでの接続はできますが、asp.netでoracleへ接続すると以下のエラーがでます。 'MSDAORA' プロバイダはローカルのコンピュータに登録されていません。 エラーは以下3行だけで出ます。 Dim cn As New OleDb.OleDbConnection 'Oracle接続用オブジェクト cn.ConnectionString = "Provider=MSDAORA;Data Source=XXXXX;Persist Security Info=True;Password=XXXXX;User ID=XXXXX" cn.Open() 'ここでエラーになる MSDAORAを使用するためには特別な設定が必要なのでしょうか? Windows 2008 Server 64bit IIS7 + .Net Framework 3.0 Visual Studio 2008 Oracle 10g なおネットで調べたところOracleクライアントのインストールフォルダに権限がついていない場合、エラーが起きるとわかりました。そこでOracleクライアントのフォルダにeveryoneでフルコントロール権限をつけてみましたが、改善しませんでした。

  • Oracle Developer Tools for Visual Studio .NET with ODAC10.2.0.2.21のインストールエラー

    Oracle Developer Tools for Visual Studio .NET with ODAC10.2.0.2.21を OTNのダウンロードサイトより、ダウンロードし、インストールを行ったところ、 約96%終了時点で、エラーが発生してしまい、正常にインストールが行えないのです。 インストールは、Windows2003 Server R2に対し行っています。 インストールログの内容を見たところ、以下のようになっていました。 ちなみに、gacutil.exeは、対象のマシンには見つかりませんでした。 ------------------------------------------------------------------------------------- 【ログの抜粋】 情報: 08/11/21 21:44:33 JST: インストールを開始します。インストール・フェーズ2コンポーネントOracle Data Provider for .NET 2.0 情報: 呼出し中:アクション:SpawnActions10.1.0.2.0 Spawn installcommand = C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\\bin\gacutil.exe /I C:\oracle\product\10.2.0\client_1\odp.net\bin\2.x\Oracle.DataAccess.dll deinstallcommand = C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\\bin\gacutil.exe /u Oracle.DataAccess,Version=2.102.2.20 WaitForCompletion = true 情報: Exception occured during spawning :CreateProcess: C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\\bin\gacutil.exe /I C:\oracle\product\10.2.0\client_1\odp.net\bin\2.x\Oracle.DataAccess.dll error=2 情報: アクションからスローされた例外: Spawn 例外名: RuntimeException 例外文字列: 実行時にエラーが発生しました。 例外の重大度: 0 情報: 例外処理はユーザーにオプションの選択を求めるように設定されています。 RETRY IGNORE ------------------------------------------------------------------------------------- 2週間ほど前に、別のサーバーに対し、インストールしたときには、 正常にインストールされたことがあり、その時のログは、以下の通りでした。 ------------------------------------------------------------------------------------- 【ログの抜粋】 情報: 08/11/06 15:46:48 JST: インストールを開始します。インストール・フェーズ2コンポーネントOracle Data Provider for .NET 2.0 情報: 呼出し中:アクション:SpawnActions10.1.0.2.0 Spawn installcommand = C:\oracle\product\10.2.0\client_1\bin\ODPReg.exe C:\oracle\product\10.2.0\client_1\odp.net\bin\2.x\Oracle.DataAccess.dll deinstallcommand = C:\oracle\product\10.2.0\client_1\bin\ODPReg.exe C:\oracle\product\10.2.0\client_1\odp.net\bin\2.x\Oracle.DataAccess.dll /u WaitForCompletion = null 情報: -------------------------------------------------------------------------------------  installcomandの実行ファイル違うので、それが原因と思われるのですが、  どうしたら、この違いが出るのかが、さっぱりわからないのです。 どなたか、心当たりのある方がいらっしゃったら、コメントをお願い致します。

  • VB.NET Oracle接続 クライアント混在

    <環境1> WinXP Oracle Client 7(?) <環境2> Win7 Oracle Client 10g(10.1.0.2.0) <サーバ> Oracle Database 7(?) こんにちわ、いつもお世話になってます。 VB.NETでoo4oにてOracleに接続するWinアプリがあります。 (なんでODPやADOを使わないんだ、という意見はナシでお願いします そもそもOracle7ではODP.NETってなかったもんですから。。。) 今までは環境1だけでしたが、環境2が出現しました。 当然、oo4oなのでInProcServerのバージョン違いにより 環境2からOracleDBへの接続はエラーとなります。 この環境2への対応が必要となっています。 そこでお聞きしたいのが 環境1、2両方に対応させるためにどのような方法をとるのがベストか、です。 現状、考えている方法は ・そもそもEXEをOra7用(InProc使用)とOra10g(ODP.NET)用に分ける ・Win7ProならXPモードにOra7をインストールする ・いっその事DB接続から何からADO.NETにかえる できれば理由付きでどんな方法が最善かご教授願います。

  • DBパスワードありVBAアクセスについて

    Access2010を使用しております。 Excel2010からAccessにVBAからSelect文でデータセット取得しようとしております。 接続には以下の記述で接続しようとしてますが、オートメーションエラーになります。 Set con = New ADODB.Connection con.Provider = "Microsoft.Ace.OLEDB.12.0" con.Properties("Jet OLEDB:Database Password") = Password con.Open "C:\\Directory" または con.Provider = "Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Directory;Jet OLEDB:Database Password=Password" con.Open などいろいろ試してますがうまくいきません。 パスワードがなければ以下の記述で開けるのですが。 con.Provider = "Microsoft.Ace.OLEDB.12.0" con.Open "c:\\Directory" アドバイス等お願いします。

専門家に質問してみよう