:私はWindows 7の64ビット版に私のコードを使用しています
32ビットpython(32ビットpython)は、Microsoftの64ビットODBCドライバで動作します。どうして?私が観察することができます
- は(だけで、簡単な読み取り操作を ネットワーク上のSQL ServerとのODBC接続を確立する)のpython 3.6で書かれて あります。 2 32bit
- 私はpyodbcをインストールしました。だから私はそれも32bitだと考えています。
- マイクロソフトのウェブサイトから64ビットの「Microsoft®ODBC Driver 13.1 for SQLServer®」をダウンロードしてインストールしました。
- 私のpythonコードは、server2003 32bitとSQL Server 2005(32bit)またはsql2008(32bit)のいずれかを実行するネットワーク上の 他のコンピュータに接続します。
セットアップが機能します。上記の設定は、SQL Serverネットワーク接続(32ビット)の設定が空であるsql2012(64ビット)を実行しているMicrosoft server2008(64ビット)を使用してコンピュータに正常に接続できることを示しています(meaing、 32ビットdllがありません)、デフォルトの64ビットネットワーク接続設定には、ipアドレスやリスニングポート情報などの通常の設定オプションが含まれています。
私自身の説明:
[1]、クライアントとサーバのOSやODBCインタフェースは、任意の32/64ビットの組み合わせであることができますが、私のコンピュータとSQLコンピュータ意志との間のネットワークを通して移動するプロトコル同一である。
[2] 32ビットPython + pyodbcは、64ビットDLLを使用する方法を知っているので、Microsoftの64ビットODBCドライバと通信できます。
* "私は、クライアントからサーバーへの要求がネットワークに送られると、32ビットまたは64ビットはそれ以上重要ではないと信じています。 –
@ GordThompsonありがとうございます。なぜなら、ODBC仕様はドライバ間で情報を交換するためのプロトコルをロックするからです。 32ビット/ 64ビットポインタの混乱のような問題がないように、またはintのような問題は32または64ビットになる可能性があります。サーバ上の64ビットODBCドライバは、32ビットODBCクライアントによってODBC言語が認識されます。ビットとは無関係に、COMオブジェクト、鉄被覆仕様にほぼ似ています。 – eliu