2012-07-27 120 views
4

我正尝试在SSIS中使用WMI事件观察程序任务执行自动程序包执行。我想要的功能是当excel文件被放入某个文件夹时自动执行包。但是,这些excel文件将成为填充数据库的连接管理器。带有可变Excel连接管理器的SSIS

目前SSIS不会允许我这样做,因为我的excel连接管理器在运行程序时没有路径,只有在文件被删除后才存在。

有没有办法让变量的Excel连接管理器或连接字符串的值是一个变量?

另外,如何在表达式中实现此变量的使用?

回答

11

您可以使用一个变量的您在连接字符串Excel源:

  1. 点击您的Excel源
  2. 在属性窗口中的连接管理器,添加(1)的ConnectionString表达式(2)并分配一个变量(3)

enter image description here

有很多不同的事情,你可以通过使用变量做。它们与for each loop containersfile system tasks结合使用。你常做这样的事情

  1. 创建变量窗口变量
  2. 将包装过程中被改变了流动
  3. 变量映射到一个表达式

有一个静态值或一个网上有很多howtos,也许看看这个吧:

http://www.simple-talk.com/sql/ssis/working-with-variables-in-sql-server-integration-services/

http://www.rafael-salas.com/2007/03/ssis-file-system-task-move-and-rename.html

+0

您能详细说明表达式有什么可能吗?你也可能想看看我的下一个问题。 – CodeKingPlusPlus 2012-07-30 13:47:52

+0

@CodeKingPlusPlus请参阅我的编辑 – stb 2012-07-30 14:56:49

+0

如果我使用ExcelFilePath而不是连接字符串怎么办?什么是高层次的过程?例如,我必须将连接管理器设置为默认文件。一旦文件被放入文件夹,脚本将设置我的文件路径变量的值。我的Excel连接管理器每个都有一个将ExcelFilePath与相应变量关联的表达式。 **连接管理器如何使用ExcelFilePath **?它目前无法正常工作。 – CodeKingPlusPlus 2012-07-30 19:59:26

2

我知道达到这个目的最快的方法是创建一个excel连接管理器并通过一个变量设置连接字符串。为了做到这一点,您需要先将连接器指向一个excel文件。因为您将在运行时动态设置新文件,所以无关紧要。然后,选择你的excel连接管理器并检查它的属性。您有一个ConnectionString属性,您可以通过表达式设置该属性。

enter image description here

但是,你必须确保你的包将仅使用Excel连接后,已经充满了正确的连接字符串! 有关SSIS变量的更多信息,请查看此链接:Variables in SSIS

+0

我得到一个'CPakcage :: LoadFromXML'错误 – Si8 2014-04-17 20:22:42

相关问题