レガシー vb6 ソフトウェアのセットアップ パッケージをビルドしようとしています。ソフトウェア自体は、sqlncli (ネイティブ クライアント) を介して SQL サーバーに接続します。すべての依存関係をパッケージ化し、winxp と office2003 を実行している新しいマシンに展開しました。
これで、ターゲット マシンから、tcp/ip を使用して別の場所で実行されているデータベース (ms sqlserver 2005) に接続できます。レガシーソフトウェアはデータベースに問題なく接続し、データを操作できます。しかし、Crystal レポートを開こうとすると、問題が発生します。
「実行時エラー '-2147189176(80047e48): ログオンに失敗しました。詳細: 01000:[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect())」というエラーが表示されます。
レポートは別のシステム、別のデータベースなどで設計されているため、レポートを呼び出す前に、すべてのテーブルのデータベース情報をリセットするループがあります。
For i= 1 To numTables
Set crTable = crTables.Item(i)
crTable.SetLogOnInfo dbServer, dbName, dbLogin, dbPasswd
Next
ConnectBufferString は、「接続文字列 = DRIVER = SQL Server;;ユーザー ID = ユーザー;;パスワード =;;データベース = MY_DB;;サーバー = 192.168.1.3\SQLEXPRESS;;UseDSNProperties = -1」を読み取ります。
プロバイダーを SQLNCLI に明示的に設定する方法はないようです。少なくとも、何も表示されません。
私の開発システムでソフトウェアを実行すると、すべてが想定どおりに機能します。
皆さんがこれで私を助けてくれることを願っています. これについて議論する必要はありません。また、これらのテクノロジー(vb6とcr9)は両方とも時代遅れだと思いますが、ここでは切り替えはオプションではありません.