• 締切済み

VBからOracleに接続できない

Visual BasicからOracleに接続すると、下記のエラーになり接続できません。 型 'System.TypeInitializationException' の初回例外が DBConnectSample.exe で発生しました 追加情報:'Oracle.DataAccess.Client.OracleConnection' のタイプ初期化子が例外をスローしました。 接続部分のソースコードは以下になります。(★がエラーになるコード) -----ここから----- Imports Oracle.DataAccess.Client Imports Oracle.DataAccess.Types 'Connectionオブジェクトの生成 Dim cnn As New OracleConnection ★ 'Oracleへのコネクションの確立 cnn.ConnectionString = "User Id=<user>; Password=<pass>; Data Source=ora11g" 'Oracleへの接続 cnn.Open() -----ここまで----- あと、他にやった事といえば、これぐらいです。 ・[参照の追加]でOracle.DataAccess 4.112.4.0を追加 ・[ビルド]はOSに合わせてx64を選択 色々ググってみても何が足りないのか、何が間違っているのか見当がつきません。

  • Oracle
  • 回答数1
  • ありがとう数2

みんなの回答

noname#212058
noname#212058
回答No.1

Oracle.DataAccess の 64ビット版をインストールしていないのでは。(32ビット版しかインストールしていないのでは)。 https://community.oracle.com/thread/2182472

saki0113
質問者

補足

確認しましたが、64bitで間違いない(ODAC1120320_64.zipを解凍しインストール)と思います。

関連するQ&A

  • 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.この発生しているエラーは何を意味しているのでしょうか? ちょっと乱文になりましてすみません。今回オラクルは初めてでいろんなコンポーネント があり、混乱しているようです。 ご教示いただけるかたいらっしゃいましたらお忙しいところすみませんがよろしくお願いいたします。

  • オラクルデータベースへの更新方法

    Visual Basic 2008 を使用しています。(初心者です) ODP.NETにてデータセットし、 オラクルのテーブルを読み込む事は可能なのですが、 データセットに更新して、 オラクルのテーブルレコードを更新する方法がわかりません。 【】内にソースを記載して頂ければ幸いです。 ご伝授願いたく宜しくお願い致します。 例) オラクルテーブル名= 社員マスター フィールド= 社員番号、社員名 Imports Oracle.DataAccess.Client Imports Oracle.DataAccess.Types Dim cnn As New OracleConnection Dim cmd As New OracleCommand Dim dsList As New DataSet Dim adp As New OracleDataAdapter(cmd) cnn.ConnectionString = "user id=ITS;password=ITS;data source=ITS" cmd.Connection = cnn '社員番号 777 がオラクルテーブルにあるか cmd.CommandText = "Select * from 社員マスター WHERE 社員番号 = 777 " adp.Fill(dsList, "EMPMSTR") 'DataSetの件数が0なら If dsList.Tables("EMPMSTR").Rows.Count = 0 Then 【ここに記載すると思いますが、 社員番号=777 社員名=太郎 をデータセットとオラクルテーブルに追加するソースをお願い致します。】 else '社員番号 777 がある場合。 【ここに記載すると思いますが、 社員番号=777 の 社員名を 太郎 に変更し、データセットとオラクルテーブルを更新するソースをお願い致します。】 end if

  • オラクル接続

    OS2000,ACCESS97で、オラクルDB(バージョン 8.1.6) に接続して使用しています。 テーブルを直接開いた時、 最初にパスワードを聞いてきますが 下記モジュールで対応したいのですが、 上手くいきません。 (パスワードをきいてきます) >Set cnn = New ADODB.Connection >cnn.ConnectionString = "Provider=MSDAORA.1;Password=***;User ID=***;Data Source=***" >cnn.Open >DoCmd.OpenTable "M110", acNormal, acEdit M110…オラクルテーブル名です。 Provider名(MSDAORA.1)は、 これであっているのでしょうか? それとも 他に 原因があるのでしょうか? それとも、最初はパスワード、聞いてくるのでしょうか? 以上 宜しくお願い致します。 ※カテゴリは不明でしたので、 とりあえずオラクルにしました。

  • ORACLEをDBで C#.netでプログラムを書きたいですが、

    ORACLEをDBで C#.netでプログラムを書きたいですが、 前は、 イベント発生する際に     cnn.ConnectionString = "user id=xxx;password=xx;data source=xx" cnn.Open() cmd.Connection = cnn DB接続してデータをUPしたりしましたが、 今回は、 DBを5回線ずっと繋がって(さーばー側)、イベント発生(クライアント側)するときに空いた回線を使ってDBを接続したいです。 如何作れば、いいですか? 宜しく御願いします。

  • 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版をインストールすれば良かったのでしょうか。

  • 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の参照設定より参照の追加をしようとすると以下の エラーになりました。 「指定されたファイルへの参照は登録できません」となりました。 以上、宜しくお願いします。

  • 「ORA-12637」エラーでORACLEに接続できない

    大変困っています。 サーバにOracleの10g、クライアントに下位バージョンの オラクルを入れて使用しています。 通常は問題なくクライアントからOracleに接続できているのですが、急に「ORA-12637」エラーが出て接続ができなくなります。時間が経つと問題なく接続できるようになるのですが、考えられる原因、対策はありませんか?

  • C#、Oracelへの接続につきまして

    C#でアプリケーションを作成しており、 OracleConnectionで、データベースに接続したいと考えています。 現在、以下のソースを書き、接続を試しました。 (Windowsアプリケーションで、buttonをクリックし、 接続できたら、MessageBoxを表示する) -----------START-------------------------- using Oracle.DataAccess.Client; private void button1_Click(object sender, EventArgs e) { string constr = "User Id=scott;Password=tiger;Data Source=orcl"; OracleConnection con = new OracleConnection(constr); con.Open(); MessageBox.Show("接続に成功!"); } -------------END------------------------ ■環境 ・OS・・Windows7(64bit) ・Visual Studio2010 Express Edition ・Oracle11g(お試し版) ・グローバル・データベース名:orcl ・データベース・パスワード:manager ------------------------------------- 現状、デバッグ実行すると、 con.Open(); で、「OracleExceptionはハンドルされませんでした。 ORA-12154:TNS:指定された接続識別子を解決できませんでした。」 と表示されてしまいます。 (sqlplusで、 ID・・scott PASS・・tiger で接続は出来ています。) 手詰まりでして、お教えいただけませんでしょうか。 宜しくお願い致します。

  • VB.NET ORA-12170

    http://okwave.jp/qa/q8420174.html ↑ VB.NETで作成したアプリでこちらの質問で無事解決し、違う環境で試したところORA-12170の タイムアウトエラーが発生しました。 SQL*Plusからの接続は問題ありません。 わからないのはWEBアプリの方は接続できるのに、コンソールアプリの方がこのエラーになってしまいます。 どちらのアプリの接続文字列も同じData Sourceを指定してます。 「db1」がTNSNAMES.ORAに記述している識別子になります。 WEBアプリ側 (Web.configに記述) <connectionStrings> <add name="oracle" connectionString="Provider=OraOLEDB.Oracle;Data Source=db1;Password=pass1;User ID=user1" providerName="System.Data.OleDb" /> </connectionStrings> コンソールアプリ側 (INIファイルに記述) ConnectionString=Provider=OraOLEDB.Oracle;Data Source=db1;Password=pass1;User ID=user1 一般的にはDBサーバにネットワークがつながってないなど単純な理由のようですが、 WEBアプリは接続できるので、そういうことはあり得ないと思います。 コンソールアプリの問題と思うのですが、どんな原因が考えられるでしょうか?

  • VBからOracle接続が出来ません。

    こんにちは。 VisualBasic6.0EnterprizeEdition から Oracle8i の接続を試みております。 接続が出来ません。コードは本のものをそのまま書いたので、間違いはないと思います。 Private Function OraOPN() As Boolean Dim strDB As String * 30 'サービス名 Dim strUID As String * 30 'ユーザー名 Dim strPWD As String * 30 'パスワード Dim strUP As String Dim strMSG As String 'エラー時のメッセージ On Error GoTo Ora_Error strDB = Trim(txtLogon(2).Text) strUID = Trim(txtLogon(0).Text) strPWD = Trim(txtLogon(1).Text) strUP = strUID & "/" & strPWD strMSG = "データベースへの接続ができません" Set OraSession = CreateObject("OracleInProcServer.XOraSession") Set OraDatabase = OraSession.OpenDatabase(strDB, strUP, &H1&) OraOPN = True Exit Function Ora_Error: OraOPN = False Call MsgBox(strMSG & vbCrLf & " システム管理者に連絡してください" & vbCrLf & vbCrLf & "", vbCritical) End End Function 以上のコードで、接続できません。本に書いてあるとおりそのままのコードです。オラクルサーバとVBプログラムは同一マシン上に置いてあります。 私は、Java専門でVBはわかりません。誰かわかる方がいたら、教えてください。よろしくお願いします。