我在使用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;
还有其他人有过这种情况吗?
答案 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)