1

この質問を拡張して、 アクセス mdb ファイルの OdbcConnection を作成するための ConnectionString とは何ですか? C# ではなく、C++ 64 ビット アプリケーションから。それが違いを生むかどうかわからないので、ここに入れます:)

32ビット用にコンパイルすると、mdbファイルに接続できます

"driver={Microsoft Access Driver (*.mdb)};Dbq=mlog.mdb;UID=;PWD="

これが最適な方法かどうかはわかりませんが、うまくいきます。

ここで、アプリケーションを 64 ビットでコンパイルする必要があります。上記の接続文字列が機能しなくなったので、http://www.connectionstrings.com/access/をチェックアウトして試しました

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=mlog.mdb;Persist Security Info=False;"

しかし、成功しません。

私が使う

ret = SQLDriverConnect(dbc, 0, connectionstring, SQL_NTS, outstr, 1024, &outstrlen, SQL_DRIVER_NOPROMPT);
        if (SQL_SUCCEEDED(ret)) ...

接続しようとします。しかし、それは常に失敗します。SQLGetDiagRec() を呼び出すと、空の文字列が返されます。

Access 2010 64bit ドライバーもインストールしました。c:\windows\system32\odbcad32.exe を確認すると、「Microsoft Access Driver (*.mdb, *.accdb)」がインストールされており、バージョン 14.00.7010.1000 が ACEODBC.DLL に含まれています。

ここで何が問題なのですか?

4

1 に答える 1