web-dev-qa-db-ja.com

ODBCを使用して64ビットSQL Serverに接続するにはどうすればよいですか?

最近、SQL Server 2008 ExpressをWindows 7 Ultimate x64ホームマシンにインストールしました。 IIS 7.5 with PHP 5.3、そして [〜#〜] adodb [〜#〜 ] ですが、このエラーが発生し続けました:

[Microsoft][ODBC Driver Manager] The specified DSN contains an
architecture mismatch between the Driver and Application

インターネットで少し掘り下げた後、SQLサーバーODBCドライバーは32ビットオペレーティングシステム用であり、私のドライバーは64です。まず第一に、私は正しいのです。 ?これが問題が発生している理由ですか?次に、そうである場合、どのようにこれを修正しますか?64ビットオペレーティングシステムで動作する更新されたODBCドライバはありますか?探しましたが何も見つかりませんでした...

16
soapergem

あなたはそれがビットと関係があるという点で正しいです。

お役に立てれば:

--MSDNから-

64ビットプラットフォームで32ビットドライバーに接続するデータソースを管理するには、c:\ windows\sysWOW64\odbcad32.exeを使用します。 64ビットドライバーに接続するデータソースを管理するには、c:\ windows\system32\odbcad32.exeを使用します。 64ビットのodbcad32.exeを使用して、32ビットのドライバーに接続するDSNを構成または削除すると、このメッセージが表示されます。

27
MkUltra

Pervasive ODBCクライアントインターフェイスを使用して、64ビットSQL 2012サーバーを 'Sage Timberline'にリンクしようとして同じ問題が発生しています。

32ビットDSNを設定できますが、SQL Serverは32ビットDSNを使用してリンクサーバーを作成しようとすると、「アーキテクチャの不一致」エラーを繰り返し出します。

4
Scott

C:\Windows\SysWOW64\odbcad32.exeをクリックしてドライバーを追加します。しかし、MAS90とSQL Server 2008 R2の間にリンクサーバーを設定しても、アーキテクチャの不一致エラーが発生します。 Sageの人に話しかけたところ、64ビット版のSQL Serverでは機能しないと彼は言いました。リンクサーバーは、SQL Serverのエディションが32ビットである場合にのみMAS90で動作します。

2
Sapen

64ビットオペレーティングシステム上の32ビットアプリケーション([プログラムファイル(X86)]にインストールされているアプリケーション)の場合、次のC:\ Windows\SysWOW64\odbcad32.exeを使用します。

それ以外の場合、64ビットアプリケーションと64ビットオペレーティングシステムは、次のC:\ Windows\System32\odbcad32.exeを使用します。

そうしないと、「アーキテクチャの不一致」のようなエラーが発生します

これが誰かの日を救うことを願っています:)

1
kta

ユーザーDSNを使用していると思います。

あなたの視点に応じて、64ビットWindows環境には「機能」または「バグ」があります-

  1. 32ビットのユーザーDSNが64ビットのアドミニストレーターに表示され、64ビットのクライアントアプリケーションがすべての使用可能なDSNを要求した場合(32ビットのDSNは64ビットのクライアントで使用にできない場合でも)アプリと管理者。

  2. 64ビットのユーザーDSNが32ビットのアドミニストレーターに表示され、32ビットのクライアントアプリケーションが使用可能なすべてのDSNを要求した場合(64ビットのDSNは32ビットのクライアントで使用にできない場合でも)アプリと管理者。

説明するエラーメッセージは、DSNとそれを操作しようとしているクライアントとの間にこのようなビット数の不一致がある場合に表示されます。

Microsoftの推奨は、ユーザーDSNに、それらのベースとなっているドライバーのビット数に応じて_32または_64と名前を付けるか、またはシステムDSNを使用することです。

必要な接続には、32ビットと64ビットのソリューションがあります。クライアントアプリケーションのビット数-IIS&PHP、この場合)-必要なソリューションのビット数を決定します。

1
TallTed

これは私にとってうまくいきました:更新されたソリューション、IISアプリケーションがx64 Windowsで32ビットに設定されていないことを確認してください。詳細: http://forum.gpsgate.com/ topic.asp?TOPIC_ID = 13711 from:

http://forum.gpsgate.com/topic.asp?TOPIC_ID=13622

0
David B