none
C# 如何执行SQL 2008的dtsx包 RRS feed

  • 问题

  • SQL2008 SSIS 包:d:\temp.dtsx是一个将平面文件源导入SQL2008的包,能使用SSIS的Execute Package Utility工具正常导入。如何在C#中将此包自动导入到SQL2008?

    引用Microsoft.SqlServer.DTSRuntimeWrap.dll(9.0)在加载包时出现错误:

                    Microsoft.SqlServer.Dts.Runtime.Wrapper.Application app = new Microsoft.SqlServer.Dts.Runtime.Wrapper.Application();
                    Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSPackage90 pack = app.LoadPackage(@"d:\temp.dtsx", true, null); 

    执行到第2句时发生错误 0xC0011008,怀疑是DTSRuntimeWrap为9.0版的缘故。

    那么在SQL2008的运行库中(10.0),哪个能被C#调用来执行DTSX包?如何使用?


    jianwu0929
    2010年11月14日 14:43

答案

  • 你好

    或者你可以嘗試以下的CODE

    Microsoft.SqlServer.Dts.Runtime.Application app = default(Microsoft.SqlServer.Dts.Runtime.Application);
    Microsoft.SqlServer.Dts.Runtime.Package pkg = default(Microsoft.SqlServer.Dts.Runtime.Package);
    app = new Microsoft.SqlServer.Dts.Runtime.Application();
    pkg = app.LoadPackage(@"d:\temp.dtsx", true, null);

    pkg.Execute();

    Please correct me if my concept is wrong



    Chi
    • 已标记为答案 jianwu0929 2010年11月16日 5:44
    2010年11月14日 15:01
    版主
  • 你好

    是有的
    但是要自己找的 來加入成REFERENCES
    可以到以下位置找的 

    在我的WIN7 64BIT 中, 他在以下PATH..  [我只安裝了 SQL 2008 和 他的 BUSINESS INTELLIGENT STUDIO]

    C:\Windows\assembly\GAC_MSIL\Microsoft.SQLServer.ManagedDTS\10.0.0.0__89845dcd8080cc91\Microsoft.SQLServer.ManagedDTS.dll

    Please correct me if my concept is wrong


    Chi
    • 已标记为答案 jianwu0929 2010年11月16日 5:44
    2010年11月15日 6:40
    版主

全部回复

  • 你好

    或者你可以嘗試以下的CODE

    Microsoft.SqlServer.Dts.Runtime.Application app = default(Microsoft.SqlServer.Dts.Runtime.Application);
    Microsoft.SqlServer.Dts.Runtime.Package pkg = default(Microsoft.SqlServer.Dts.Runtime.Package);
    app = new Microsoft.SqlServer.Dts.Runtime.Application();
    pkg = app.LoadPackage(@"d:\temp.dtsx", true, null);

    pkg.Execute();

    Please correct me if my concept is wrong



    Chi
    • 已标记为答案 jianwu0929 2010年11月16日 5:44
    2010年11月14日 15:01
    版主
  • 您的方法在安装有SQL2005和SQL2008的机器下可以通过。在只装有SQL2008的机器上由于没有Microsoft.SqlServer.Dts.Runtime命名空间(SQL2005的Microsoft.SQLServer.ManagedDTS.dll),怎么办呢?


    jianwu0929
    2010年11月15日 2:09
  • 你好

    是有的
    但是要自己找的 來加入成REFERENCES
    可以到以下位置找的 

    在我的WIN7 64BIT 中, 他在以下PATH..  [我只安裝了 SQL 2008 和 他的 BUSINESS INTELLIGENT STUDIO]

    C:\Windows\assembly\GAC_MSIL\Microsoft.SQLServer.ManagedDTS\10.0.0.0__89845dcd8080cc91\Microsoft.SQLServer.ManagedDTS.dll

    Please correct me if my concept is wrong


    Chi
    • 已标记为答案 jianwu0929 2010年11月16日 5:44
    2010年11月15日 6:40
    版主
  • 你好

    非常感谢!我在SQL的安装目录下找到了10.0的Microsoft.SQLServer.ManagedDTS.dll,呵呵!


    jianwu0929
    2010年11月16日 5:44