3

我正在尝试从 C# 应用程序运行 dts 包。不过,我需要动态更改其连接字符串。我在网上看了一下,发现我应该使用Package对象的Variables属性。问题是,我的 Visual Studio 2010 没有显示包的这个变量属性。我使用的命名空间是

using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;

我应该做些什么?

4

1 回答 1

2

您真的是指 DTS (SQL2000) 或其较新的同级 SSIS 吗?无论如何,我遇到了一个类似的问题,我必须为一个包指定多个动态连接。我解决它的方法是这样的:

来自调用者: - 向 SQL 表写入两列: - “Key”列是与目标的特定连接 - “Value”列是新的连接值

包内部: - 使用 SQL 任务将键/值对读入 @User:: 变量 - 使用脚本任务获取自身运行实例的句柄 --> 通过此句柄分配连接字符串

DTS 示例:

' Get a reference to self (the DTS package currently running)
Set oPkg = DTSGlobalVariables.Parent

' Get connection to Input File - Set Path
Set oCn = oPkg.Connections.Item ( "MasterFileIn" )
oCn.DataSource = workAreaPath & "MasterFile.txt"

SSIS 不允许访问活动包对象,但您可以直接设置连接。在您的ScriptMain.cs文件中:

ConnectionManager cm = Dts.Connections["MasterFileIn"];
cm.ConnectionString = Dts.Variables["DataSource"].Value;
于 2012-05-12T02:57:01.017 回答