1

SSISのスクリプトタスクから接続マネージャーを使用する際に問題が発生しました。環境で設定されている接続を使用しようとするまで、プログラムは完全にコンパイルされます。

Private Sub InsertLog(ByRef log() As String)
        Dim conn As SqlClient.SqlConnection
        conn = _
            DirectCast(Dts.Connections("ConfigDB").AcquireConnection(Dts.Transaction),  _
            SqlClient.SqlConnection)
        MsgBox(log(0) & "  " & log(1) & "  " & log(2) & "  " & log(3) & Dts.Connections("ConfigDB").ConnectionString.ToString())
End Sub

DimとDirectCastをコメントアウトすると、パッケージが正常に実行され、メッセージボックスで接続文字列を正常に取得できます。

Data Source=PathToServer;Initial Catalog=DB;Provider=...;Integrated Security=...;Application Name=...;Auto Translate=False;

他の誰かがこれを起こしたことがありますか?

4

1 に答える 1

1

解決策があります。失敗した理由はプロバイダーと自動翻訳が原因だったので、私の解決策は不要なものを取り除くことです。

Dim strConnection As String = Dts.Connections("Automation").ConnectionString.ToString()
        Dim regProvider As New Regex("Provider=([^;]*);")
        Dim regTranslate As New Regex("Auto Translate=([^;]*);")
        strConnection = regProvider.Replace(strConnection, "")
        strConnection = regTranslate.Replace(strConnection, "")
        Dim conn As New SqlClient.SqlConnection(strConnection)
于 2012-05-17T18:05:43.520 に答える