0

VB.net の Progress データベースと連携するアプリケーションを作成しています。私の開発マシンは 32 ビットの Win 7 コンピューターです。使用する必要があるデータベース用に構成されたシステム DSN があります。32 ビット マシン上にあるため、32 ビット DSN です。

アプリはローカル コンピューターで問題なく動作しますが、64 ビット マシンの 1 つに取り込もうとすると問題が発生します。現在、64ビットマシンには32ビットドライバーがインストールされているようです(C:\Windows\SysWow64\odbcad32.exe調査に基づいて、すべての32ビットシステムDSNとすべてのユーザーDSNが表示されるはずです)、一見同じDSN(同じ方法とすべてに名前が付けられています)システム DSN に存在します。

x86の代わりに をコンパイルしようとしましたがAllCPUs、それでもエラーが発生します。エラーの一部を以下に示します。

64 ビット マシンと 32 ビット マシンの両方で動作するようにこれを修正する方法について何か提案はありますか? 64 ビット マシンが 32 ビット DSN で動作していることを二重に確認する方法はありますか?

エラー [IM014] についての私の理解では、プログラムは 64 ビット マシンで DSN を検出していますが、それは 32 ビット DSN であるため使用できません。

2番目のエラーのほとんどはここにあります.08S01はすべて「通信リンク障害」、IM006は「ドライバーのSQLSetConnectOption失敗」で、HY000には約20の異なる意味があります.

DSN 接続文字列、ターゲット CPU: すべての CPU、32 ビット マシン: 正常に実行
DSN 接続文字列、ターゲット CPU: AllCPUs、64 ビット マシン: エラー [IM014]
DSN 接続文字列、ターゲット CPU: x86、32 ビット マシン: 正常に実行
DSN 接続文字列、ターゲット CPU: x86、64 ビット マシン: エラー [HY000]
                                                                   [HYC00]
                                                                   [08S01]
                                                                   [08S01]
                                                                   [08S01]
                                                                   [IM006]
「はい、最後のエラーのすべてのエラーは、1 回の接続試行によるものです。

4

2 に答える 2

0

Visual Studio 2019 の Compile オプションでターゲット CPU = x64 で vb.net コードをコンパイルすることで、この問題を修正しました。

于 2020-09-25T11:48:14.967 に答える