连接到脚本任务中的数据源

时间:2012-05-17 17:05:33

标签: sql sql-server-2005 ssis

我在使用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;

还有其他人有过这种情况吗?

1 个答案:

答案 0 :(得分: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)