SSIS在脚本任务上读取平面文件连接

问题描述 投票:3回答:3

我正在研究2008 SSIS,我需要读取一个平面文件,以便我可以访问其内容(有3个目录路径),因此我可以将这3个路径存储到变量中。

平面文件将在3个不同的服务器中,根据我正在处理的实例(dev,qa,production),所以我不能只将路径写入变量,因为我每次都必须重写该值我需要在不同的实例中部署解决方案。

我过去尝试过的是使用Directory.GetCurrentDirectory()读取平面文件,但我无法调试,并且在VS2008上使用F5 / run包不起作用(我读过它没有在VS上工作但是一旦你部署了它,它工作正常,但我没有办法证明它,但尝试)。

所以,我发现,如果我可以读取保存在平面文件连接上的路径并将其保存在字符串变量中,我可以在部署包后修改.config文件中的连接字符串值,并读取其内容,如一个普通的平面文件。

我的问题是,我无法弄清楚如何读取连接字符串值,我找不到任何在线指向正确方向的东西。

提前致谢。

c# sql-server ssis etl ssis-2008
3个回答
1
投票

你想要一些像C#Script任务的东西。您可以在那里动态修改连接字符串。在脚本中你可以修改(如果我没记错的话)Dts.Connections.["YourConnection"].ConnectionString的值。


1
投票

由于似乎没有任何效果,我最终做了以下事情:

  • 在数据库的参数表中插入了我需要的值
  • 生成了一个执行SQL任务
  • 将该任务的结果分配给变量

我花了一整天,但我终于明白了。

我跟着this线程作为参考。


1
投票

要从脚本任务访问连接管理器信息,您可以使用Dts.Connections属性,只需声明一个字符串变量,然后读取connectionstring属性:

string cs;
cs = Dts.Connections["myFlatFileConnection"].AcquireConnection(Dts.Transaction);

参考:

根据这个Microsoft Docs article

连接管理器提供对包中已配置的数据源的访问。欲获得更多信息。 Script任务可以通过Dts对象的Connections属性访问这些连接管理器。 Connections集合中的每个连接管理器都存储有关如何连接到基础数据源的信息。 Read more (+examples)

© www.soinside.com 2019 - 2024. All rights reserved.