上次转过一篇关于如何使用C#调用SSIS包的文章,但其平台是旧版本的。
现在讲的是如下平台: Windows2003 R2 SP2;SQL SERVER 2005 加所有最新补丁;VS 2005 professional Edition。
首先应该加入引用
C:/Program Files/Microsoft SQL Server/90/SDK/Assemblies/Microsoft.SQLServer.DTSRuntimeWrap.dll 版本 9.0.242.0
加入后看到 Microsoft.SQLServer.DTSRuntimeWrap
using DtsRunTime = Microsoft.SqlServer.Dts.Runtime.Wrapper;
这个Wrapper是新版本有的,以前版本只要using DtsRunTime = Microsoft.SqlServer.Dts.Runtime。
其中所有的类都包入Wrapper中。注意和以前的不同。
LoadPackage的参数顺序也进行了改变。Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSPackage90 LoadPackage(string FileName, bool loadNeutral, Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSEvents90 pEvents)
返回参数修改为IDTSPackage90 这个接口,但原先的Package仍然存在。
执行结果增加了前缀DTSER_ 分别为 DTSER_SUCCESS,DTSER_CANCELED,DTSER_COMPLETION,.DTSER_FAILURE。
原先的参数 Variables现在已经没有了,需要用
OK,就先讲这么多。
今天对上边讲的内容进行下补充:
其实包空间Microsoft.SqlServer.Dts.Runtime;仍然存在,需要引入 Microsoft.SqlServer.ManagedDTS
对应的文件是 C:/Program Files/Microsoft SQL Server/90/SDK/Assemblies/Microsoft.SQLServer.ManagedDTS.dll
这样,使用包就不用直接用IDTSPackage90 了。代码可以改为如下:
package.Variables 也可以使用了。
using Microsoft.SqlServer.Dts.Pipeline; 对应 Microsoft.SqlServer.PipelineHost.dll using Microsoft.SqlServer.Dts.Pipeline.Wrapper; 对应 Microsoft.SqlServer.DTSPipelineWrap.dll using Microsoft.SqlServer.Dts.Runtime; 对应Microsoft.SqlServer.ManagedDTS.dll using Microsoft.SqlServer.Dts.Runtime.Wrapper; 对应Microsoft.SqlServer.DTSRuntimeWrap.dll