質問

私は、JDBC-ODBC経由でAccessファイルに接続するに取り組んできたアプリケーションのために生じている問題を扱っています。他のWindowsプラットフォームでは、この問題が発生したが、Windows 7 64ビット・ボックスに、DSNレス接続文字列リターンで接続しようとしていません。

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

の文字列上の複数のバリエーションが試みられているが、それらのすべてが同じエラーを返してきました。ここでは、現在接続しようとする方法は次のとおりです。

  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

  StringBuffer databaseConnectionString;

  if (SystemUtils.IS_OS_WINDOWS_7) {
       databaseConnectionString = new StringBuffer("jdbc:odbc:DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=");
       databaseConnectionString.append(databaseFile);

  } else {
       databaseConnectionString = new StringBuffer("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=");
       databaseConnectionString.append(databaseFile);
       databaseConnectionString.append(";DriverID=22;READONLY=false}");
  }

のドライバが存在すること、32ビットODBCデータソース管理者確認にドライバを調べます。 REGEDT32.EXEは、ODBCドライバの(HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI/ODBC Drivers)を調べるために使用されている場合しかし、それらのどれも表示されません。

この上でいくつかの光を当てるために缶誰ヘルプ?

役に立ちましたか?

解決

私はこの問題は、私は、64ビットJavaでプログラムを実行していたことがわかりました。私はそれが32ビットまたは64ビットJavaで実行している場合、プログラムが検出持っている首尾には至っていないが、私は、32ビットのJavaランタイム環境をインストールすると、次のように読み込むの.batファイルを使用してソリューションを解決しました。

@echo off

"C:\Program Files (x86)\Java\jre6\bin\java" -D32 -Xmx1024m -jar programName.jar

助けてくれてありがとう!

他のヒント

これは、JAVAやMSのODBCドライバから意味のあるエラーメッセージの不足与えられた困難な課題でした。 (MSからAccessDatabaseEngine.exeを使用して)は、JavaとMSアクセスのドライバを32ビットのために選択するダウン約上記答えが作業を行ったが、64ビットのJavaを使用する場合に比べ、他のアクションの処理に(約30%)有意なペナルティを要します。私は(:\ Javaの\ 32または64を別のディレクトリcの両方で、32ビットと一緒に)64ビットのJavaをインストールして、私はこの価格を支払うことに消極的でした。私は、Apacheジェロニモを使用していたので、この後者のディレクトリの問題は私にとって重要だったし、そのバッチファイルの解析を殺すように見えた(x86の)としてJavaが...プログラムファイル(x86の)にインストールされた場合、それが起動しないでしょう。その後、Iアンインストール32ビットMS Accessとインストール64ビットのMS Access(AccessDatabaseEngine_x64.exe)。最後に、それはより高速とMDB接続の両方で働いています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top