4

32 ビット .Net アプリケーションから DB2 データ プロバイダーを取得して、Vista 64 で 32 ビット アプリケーションとして実行されている DB2 に接続しようとしています (まだ混乱していますか?)。残念ながら、次のエラーが表示されます。

SQL1159 DB2 .NET Data Provider での初期化エラー、理由コード 7、トークン 9.5.0.DEF.2、SOFTWARE\IBM\DB2\InstalledCopies

それについて言及しているIBM フォーラムの投稿がいくつかありますが、有用なガイダンスはほとんどありません。誰もこれを経験したことがありますか?それとも、それを修正するためのより良いアイデアがありますか?

4

10 に答える 10

2

x86 として実行する必要がありますか? Visual Studio の開発用 Web サーバー (x86) の下にある Web アプリでも同様の問題がありましたが、IIS (x64) に切り替えるとうまくいきました。IIS x64 に展開していたので、その時点で 1 日で終了しました。

Filemon と Regmon を使用してトレースを試みましたが、キーが拒否されたか見つからないというエラーは発生しませんでした。もう一度調べてみると、HKLM\Software\WOW6432Node をチェックして、インストーラーが x64 HKLM\Software ノードに書き込みますが、x86 ノードには書き込みません。

于 2008-08-27T11:21:12.093 に答える
1

SQL 2005 から as/400 へのリンク サーバーをセットアップしようとしたときに、DB2 for as/400 oledb ドライバーで同様の問題が発生したことを漠然と覚えています。これは権限の問題であり、最終的には、ドライバーが偽装されたものの代わりにSQLの資格情報を使用してロードしていたため、(Windowsではなく) SQLサーバーアカウントのみがリンクサーバーを使用できることがわかりました。「管理者として実行」したときに機能する場合は、権限が必要です。

于 2008-08-27T03:02:42.433 に答える
1

DB2 リファレンス ガイドでSQL1159の記述を見たことがあると思いますか?

残念ながら、理由コードは 6 で停止し、7 まで続きません。次のように表示されます。

ユーザーの処置: DB2 のインストールに問題がありました。DB2 をこのコンピューターに初めてインストールした場合は、インストール ログで考えられるエラーを確認し、[プログラムの追加と削除] コントロール パネル アプレットから DB2 の修復を実行します。インストール ログのデフォルトの場所は、インストールを実行したユーザーの My Documents/DB2LOG フォルダーです。これで問題が解決しない場合は、IBM サポートに連絡し、このメッセージに関連付けられている理由コードとインストール ログを提供してください。

したがって、再インストールを試みて問題が解決しない場合は、IBM に連絡する必要があります。

申し訳ありませんが、それはあまり役に立たないことを知っています。

于 2008-08-27T03:06:15.827 に答える
0

I encountered this error on a Windows 2003 x86 server as well. Originally my problem was

Unable to find the requested .net framework data provider. it may not be installed.

which led to comments that c:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config was missing the necessary entries for the DbProviderFactories section. And indeed, there were no IBM DB2 entries there. When I manually added in an entry, I then encountered this error of yours, suggesting that there is more than just editing machine.config.

Evenutally I uninstalled the IBM DB2 driver set, reboot the system, reinstalled it, and got it initializing connections properly.

于 2008-10-31T11:09:03.983 に答える
0

Win x64 バージョン 9.7.1 用の DB2 Express-C をインストールすると、動作します。

于 2010-01-19T00:39:18.340 に答える
0

以前の 32 ビット バージョンをアンインストールし、64 ビットとして再インストールしたところ、まったく別のエラーが発生しました。修正するには FP2 が必要であると述べられていますが、私は Express-C を使用しているため、修正パックをインストールできません (IBM は無料の DB2 製品用の修正パックを提供していません)。とにかく、助けてくれてありがとう。少なくとも今は接続に近づ​​くことができます。:)

于 2008-08-28T01:37:50.053 に答える
0

はい。これは、Windows XP ではなく、Windows 7 で発生するはずです。ソウルションは次のとおりです。

  • ソリューション エクスプローラーでプロジェクトを右クリックします。
  • Properties
  • Compile tab(左側)
  • 下にスクロールしてAdvanced Compile optionボタンを表示
  • ドロップダウンTarget Cpuを x86 に変更します。
于 2014-03-06T22:41:02.180 に答える
0

DB2 .net プロバイダーにも同じ問題がありました。

Windows 64 ビットを使用している場合は
、_https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?lang=en_US&source=swg からIBM Data Server Runtime Client (Windows AMD 64) バージョン 9.5 をダウンロードしてインストールします。 -idsrc11&S_TACT=appddnet&S_CMP=ibm_im

プログラムを実行すると、次の例外が発生します

未処理の例外: System.Overflow 例外: 算術演算でオーバーフローが発生しました。IBM.Data.DB2.DB2ConnPool.Open(DB2Connection 接続、StringszConnectionStringIn、DB2ConnSettings& ppSettings、Object& ppConn) で IBM.Data.DB2.DB2Connection.Open()

ご使用の db2 バージョンの修正を http://www-01.ibm.com/support/docview.wss?uid=swg1IZ09579からダウンロードしてインストールします。

これで問題は解決します。

于 2010-01-14T17:48:34.763 に答える
0

同様の問題がありました。私のマシンは64ビットです。32 ビットと 64 ビットの両方の db2 ランタイム クライアントをインストールし、プロジェクトでターゲット フレームワークを 32 ビットに設定すると、完璧に機能しました。マシンの OS に応じて、db2 ランタイム クライアントから 32 ビットまたは 64 ビットをインストールするだけで、他の 64/32 ビット マシンでアプリケーションを実行できました。

于 2012-03-24T18:22:23.287 に答える