我有一个子包,其中Connection Manager的ConnectionString属性由父包变量配置设置。我设置了一个脚本任务,在数据流任务之前调出一个带有ConnectionString属性值的消息框。
`MessageBox.Show(Dts.Connections["CPU_*"].ConnectionString.ToString());`
当我运行父包时,消息框显示连接字符串随每次迭代而变化,但在数据流中它总是从同一源中提取数据。
我使用的是SQL Server 2008 R2,连接管理器是ADO.Net类型,RetainSameConnection设置为False,我已经研究了好几天了。有人有什么想法吗?
更新(2015年2月23日):为了使这个陌生人,当我查看诊断日志时,他们告诉我,当打开新连接时,他们正在使用新的连接字符串。
答案 0 :(得分:0)
我还不确定以后的版本,但是当你将连接字符串传递给子包时,肯定会有2008R2。正确地指出连接字符串IS已传递,但是在父配置之前评估连接,或者在传递父配置之后从设计对象更新连接字符串。
无论哪种方式它都不起作用。
如果像我一样,您不想在所有包中添加额外的脚本任务,则需要执行以下操作:
父包
使用以下行添加C#脚本任务(在包任务之前):
Dts.Variables [“User :: MyConnection”]。Value = Dts.Connections [“MyDBConnection”]。ConnectionString;
儿童套餐