2011-07-15 19 views
1

サードパーティのアプリケーションが提供する接続文字列を使用してデータベースにアクセスしたいとします。 Java ODBCとMicrosoft.Jet.OLEDB.4.0

DriverManager.getConnection("jdbc:odbc:" + connectionString); 

は私のSQLExceptionを与えて呼び出す

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\path\to\theDatabase.mdb;Persist Security Info=False 

:私は次のように接続文字列を持っている一例の構成を有している[Microsoft]の[ODBCドライバマネージャ]データソース名が見つかりませんし、デフォルト指定されたドライバ

  • サードパーティアプリケーションは問題なくデータベースにアクセスできます。
  • OSはWindows XP Service Pack 3で、最新のものです。
  • SYSTEM32フォルダ内のMSJET40.DLLは、ファイルが存在するバージョン4.0.9511.0
  • http://support.microsoft.com/kb/239114/en-usに応じて最新の状態に)持っていると私はそれが私は知らないjdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};C:\path\to\theDatabase.mdb

をアクセス使用することができます私が間違っていること。それは、アクセスデータベースは

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    Connection con = DriverManager.getConnection("jdbc:odbc:connSource"); 

後藤次試みる接続するには、あなたのODBC接続 で

http://www.connectionstrings.com/

+0

MDBファイルは 'Data Source = C:\ path \ to \ theDatabase.mdb'にありますか? – Jacob

+0

はい、データソースはMDBファイルを指しています。 (もちろん私の質問ではmdbファイルへのパスを変更しました) – niks

答えて

1

これは問題の可能性があります。 OLE DBデータソースのJDBCドライバについてはわかりません。ここにあるので、この質問は3月の回答無しに置かれます:https://stackoverflow.com/questions/5184046/jdbc-oledb-bin

+0

ありがとうございます。問題は、接続文字列がODBC接続文字列だと思っていたのですが、そうではありません。これはOLE DB接続文字列です。したがって、 'jdbc:odbc:...'うまくいきません。 – niks

0

wesiteを参照してください。コントロールパネル - >管理ツール - >データソース(ODBC) - >システムDSN->追加 - > MicrosoftAccess->

の名前フィールドに、ソース名をconnSourceとして指定します。

DriverManager.getConnectionメソッドでは、データベース名の代わりにこの名前を使用する必要があります。

getConnectionMethodはデータベース名ではなく、ソース名を取るためです。あなたのコードは機能しません。

+0

私はすでにこのサイトを見つけましたが、それは私を助けません。 Iv'eは接続文字列をサイト上の文字列と比較し、なぜ機能しないのかわかりません。 – niks

+0

迅速な対応をありがとう!私は接続文字列**がODBC接続文字列ではなく、OLE-DB接続文字列であることを知りました。構文は同じように見えますが、2つの全く異なるデータベースシステムです... – niks

2

問題があるすべてのデータベースのすべてのバリアントの接続文字列が含まれているの下に

+0

私が言及したように、接続文字列は第三者のアプリケーションによって与えられているため、私はこれを行うことができません。そして[このサイト](http://www.carlprothman.net/Default.aspx?tabid=87#OLEDBProviderForMicrosoftJet)によれば、文字列は機能するはずです。 – niks

+0

迅速な対応をありがとう! – niks

関連する問題