动态设置SSIS中,配置包的xml配置文件路径

 /// <summary>
    /// 为包添加配置文件。
    /// </summary>
    protected void SavePackage()
    {
        //新建dts执行程序

        dts.Application app = new Microsoft.SqlServer.Dts.Runtime.Application();
        //新建一个包
        dts.Package pack = new Microsoft.SqlServer.Dts.Runtime.Package();
        try
        {
            
            //加载一个存在的包
            string PackagePath = Server.MapPath("") + "//Package_FilingBackUp.dtsx";
            pack = app.LoadPackage(PackagePath, null);//加载包
          
            if (pack.Configurations.Contains("DTSConn")) pack.Configurations.Remove("DTSConn");

            //动态设置包的配置文件路径
            pack.EnableConfigurations = true;//启用包配置
            Microsoft.SqlServer.Dts.Runtime.Configuration conf = pack.Configurations.Add();//新建一个配置
            conf.ConfigurationString = Server.MapPath("") + "//DtsConfig.dtsConfig";//设置配置文件的值为已存在的配置文件xml的路径
            conf.ConfigurationType = dts.DTSConfigurationType.ConfigFile;//设置配置文件读取方式为xml文件
            conf.PackagePath = PackagePath;//设置被配置的SSIS包路径。
            conf.Name = "DTSConn";//设置此包的名称。

            //保存SSIS
            app.SaveToXml(PackagePath, pack, null);//最关键的一步
           
        }
        catch (Exception ex)
        {
         
        }
    }


 //运行DTS包
    /// <summary>
    /// 运行DTS包
    /// </summary>
    /// <param name="path">保存备份文件的路径</param>
    /// <param name="CreateTime">备份时间</param>
    /// <param name="Fname">备份文件文件名</param>
    private void Excutepackage(string path,string BeginTime,string EndTime, string Fname)
    {

        //新建dts执行程序
        dts.Application app = new Microsoft.SqlServer.Dts.Runtime.Application();
        //新建一个包
        dts.Package pack = new Microsoft.SqlServer.Dts.Runtime.Package();
       
        try
        {
           
            //加载一个存在的包
            string PackagePath = Server.MapPath("") + "//Package_FilingBackUp.dtsx";
            pack = app.LoadPackage(PackagePath, null);//加载包
           
            //给变量赋值
            pack.Variables["BeginTime"].Value = BeginTime;
            pack.Variables["EndTime"].Value = EndTime;
            pack.Variables["BakFilesPath"].Value = path;

          

            //执行包
            dts.DTSExecResult result = pack.Execute();
            if (result.Equals(dts.DTSExecResult.Success))
            {
              
                try
                {
                    //添加备份日志记录
                    BackupHisManager BackMan = new BackupHisManager();
                    BackupHis ent = (BackupHis)Weith.Toolkit.Reflection.TypeAccessor.CreateInstance(typeof(BackupHis));
                    ent.CreateTime = System.DateTime.Now;
                    ent.MediumNo = Fname;
                    ent.Creator = Global.GetUserID();
                    ent.MediumType = 0;
                    ent.DataFilePath = path;
                    BackMan.BackupHisAdd(ent);
                    Callbackresoult = "ClearData$" + BeginTime + "|" + EndTime + "|备份成功<br>备份时间:" + pack.Variables["BeginTime"].Value + "年到" + pack.Variables["EndTime"].Value + "年<br>备份路径:" + path + "<br><b>第三步:清除库中被备份的记录,请稍等...</b>";
                }
                catch(Exception ex)
                {
                    Callbackresoult = "wrong$备份失败:" + ex.Message;
                }
              
            }

     //捕捉错误
            string message = "";
            if (result.Equals(dts.DTSExecResult.Failure))
            {
                for (int i = 0; i < pack.Errors.Count; i++)
                {
                    message += pack.Errors[i].Description +"<br>";
                }

                Callbackresoult = "wrong$备份失败:" + message;
            }

        }
        catch(Exception ex)
        {
            Callbackresoult = "wrong$备份失败:" + ex.Message;
        }
       
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值