2

レガシー 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)は両方とも時代遅れだと思いますが、ここでは切り替えはオプションではありません.

4

2 に答える 2

0

テーブルを消去し、データベースへのアクセスの構成を変更する必要があります。以下の例を参照してください。コードの最初の行では、必要に応じて接続ドライバーを変更する例を示しました。私の場合、レポートは PostgreSQL データベースを指しており、SQL サーバーに接続するためにプログラムを変更する必要がありました。

myReportObject.Database.Tables(1).DllName = "crdb_ado.dll"       'Connect to SQL with OLEDB
For Index = 1 To myReportObject.Database.Tables.Count
    With myReportObject.Database.Tables(Index)

        .ConnectionProperties.DeleteAll

         .ConnectionProperties.Add "Provider", "SQLOLEDB"
         .ConnectionProperties.Add "Data Source", mySqlIP
         .ConnectionProperties.Add "Initial Catalog", myDB
         .ConnectionProperties.Add "User ID", usr_id
         .ConnectionProperties.Add "Password", pass
         .ConnectionProperties.Add "Integrated Security", 0

    End With
Next
于 2014-09-15T13:39:24.417 に答える
0

あなたのコメントで、あなたはすでにこれを回避していると言っていましたが、私はこれをそこに捨てると思いました. :)

使用してみてください

Provider = SQLNCLI

それ以外の、

DRIVER = SQL Server

それが違いを生むかどうかを確認します。

次のリンクを見てください。「SQL Native Client 9.0 OLE DB プロバイダー」セクションが表示されるまで、ページを下にスクロールします。これらは、SQL Server Native Client を使用した接続文字列の例を示しています。

http://www.connectionstrings.com/sql-server-2005

お役に立てれば。

于 2009-09-17T14:40:21.400 に答える