2017-07-31 67 views
2

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

根据我正在开发的实例(dev,qa,production),平面文件将位于3个不同的服务器中,所以我不能将路径写入变量,因为我必须重写每当我需要在不同的实例中部署解决方案时,这个价值就会得到体现。

我过去试过的一些东西是使用Directory.GetCurrentDirectory()读取平面文件,但我无法调试,并且在VS2008上使用F5/run包无效读它不能在VS上工作,但一旦你部署了包,它工作正常,但我没有办法证明它,但尝试)。因此,我发现,如果我可以读取保存在平面文件连接上的路径并将其保存在字符串变量中,那么一旦部署包,我就可以修改.config文件中的连接字符串值,并且像普通的平面文件一样读取其内容。

我的问题是,我无法弄清楚如何读取连接字符串值,并且我找不到任何指向正确方向的内容。

在此先感谢。

回答

1

因为似乎没有什么工作,我最后做了以下内容:

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

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

我跟着this线索作为参考。

1

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

1

从脚本任务访问连接管理器的信息,您可以使用Dts.Connections财产,只是声明了一个字符串变量,并读取ConnectionString属性:

string cs; 
cs = Dts.Connections["myFlatFileConnection"].ConnectionString; 

参考:

根据这一Microsoft Docs article

“Connection manager prov ide访问已在包中配置的数据源。了解更多信息。 脚本任务可以通过Dts对象的Connections属性访问这些连接管理器。在Connections集合每个连接管理器存储有关如何连接到底层数据源信息“Read more (+examples)

+0

我试图做到这一点,但它没有奏效。不管怎么说,多谢拉 – Rambo3