我是一名 DBA。我们已经将 SQL 2000 数据库 + DTS 包迁移到 SQL 2008。其中一个 DTS 包运行一个 ActiveX 脚本来打开一个 Excel 文件(当你打开它时它会运行宏)。ActiveX 脚本中的编码是:
Function Main()
Set XlApp = CreateObject("Excel.Application")
call XlApp.Workbooks.Open("\\server\c$\path.xls",3)
call XlApp.Workbooks.Open("\\server\c$\path2.xls",3)
call XlApp.Workbooks.Open("\\server\c$\path3.xls",3)
set XlApp = nothing
Main = DTSTaskExecResult_Success
End Function
有时它会抛出“Active X 组件遇到运行时错误”甚至没有告诉有关错误的详细信息,有时它运行良好。DTS 包使用 SQL 代理作业运行。在不使用 ActiveX 脚本的情况下,是否有更好、更可靠的方法来执行此操作?
谢谢!
虽然我不精通 .net 代码,但这个特定示例似乎很适合使用下面列出的 .net 或 SSIS 组件。您甚至可以将 PS 与 SSIS 一起使用。
http://pragmaticworks.com/help/dtsxchange/index.htm#page=ActiveX Script Task.htm
http://pragmaticworks.com/help/dtsxchange/scr/FAQ%20-%20How%20to%20convert%20Scripting.FileSystem%20object%20of%20ActiveX%20Script%20to%20native%20SSIS%20Task.htm
http://pragmaticworks.com/help/dtsxchange/index.htm#page=ActiveX Script Task.htm