0

Oracle DBに接続してそのデータにアクセスするために、VC ++でアプリを開発しました。DSN を作成し、PATH、ORACLE_HOME、TNS_ADMIN などのいくつかの環境変数を設定する必要があります。これは、VC++ コードでプログラムで行ったものです。必要なレジストリ エントリを更新しました。マシンに 32 ビットの Oracle Instant Client をインストールしました。

http://download.oracle.com/otn/nt/instantclient/121020/instantclient-basic-nt-12.1.0.2.0.zip http://download.oracle.com/otn/nt/instantclient/121020/instantclient -odbc-nt-12.1.0.2.0.zip

Windows 7 64 ビット マシンのターゲット プラットフォームとして Win32 オプションを使用して、アプリケーション exe に準拠し、ビルドしました。この exe は Windows 7 64 ビット マシンで正常に動作し、SQLDriverConnect() を使用して DB 接続を正常に確立できます。

しかし、32 ビットの Oracle Instant Client をインストールし、PATH、ORACLE_HOME、TNS_ADMIN などのいくつかの環境変数を設定し、必要なレジストリ エントリを更新し、同じアプリケーション exe (64 ビット マシンで使用) を実行するなど、Windows 32 ビット マシンで同じセットアップを行うと、これにより、次のエラーが発生します。

[Microsoft] - [ODBC Driver Manager] データ ソース名が見つからず、既定のドライバーが指定されていません。

解決手順を提案してください。

4

2 に答える 2

0

ご回答ありがとうございます。

とにかく私は問題を修正しました。

プログラムで DSN を作成し、DSN のレジストリ エントリを更新していると前述したように、レジストリ パスは 64 ビット マシンと 32 ビット マシンで異なる必要があります。

64 ビット マシンでは、DSN レジストリ パスは次のようになります。

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI]

32 ビット マシンでは、DSN レジストリ パスは次のようになります。

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI]

これにより、32 ビット マシンのレジストリの新しいパスに DSN レジストリ エントリを作成した後、問題が解決しました。

于 2016-11-24T07:31:30.180 に答える