SSIS压缩文件并以邮件附件发送
来源:互联网 发布:ds1100k 网络键盘 编辑:程序博客网 时间:2024/06/10 07:57
PS: 1.由于本文使用了msdb..sp_send_dbmail发送邮件.所以应先对数据库邮件进行配置.
2.在压缩文件时,使用了7-Zip进行压缩,所以请到http://www.7-zip.org/下载该压缩工具,由于该压缩工具基于 GNU LGPL 许可协议,所以可自由使用.下载完.安装到E:/7-Zip/ 由于本文使用的是这个路径,所以可以自行设置路径.并在以下使用到7z.exe时指定具体的路径.
一.打开Business Intelligence Development Studio平台.然后文件->新建->项目->选择SSIS项目.
二.菜单中选择SSIS->变量.调出变量窗口.然后新增几个变量.如图:
InFileFolder : 准备压缩文件的目录
InFileType : 准备压缩文件的文件类型.即扩展名
OutExecuteCommand : 执行压缩命令的命令参数
OutFileFolder : 存储压缩文件的目录
OutFileName : 存储压缩文件的文件名
OutFullName : 压缩文件的完整路径和文件名
Password : 压缩文件的密码. *为空是表示不加密码压缩
三.在控制流上添加一个脚本任务.并双击进入脚本任务编辑器
(1)在ReadOnlyVariables 里添加InFileFolder,InFileType,OutFileFolder,Password
(2)在ReadWriteVariables里添加 OutExecuteCommand,OutFileName,OutFullName
(3)脚本语言选择 Visual Basic
(4)点击编辑脚本按钮.进入代码编辑器.
在Main方法里添加如下代码
(5)点击生成并保存退出
四.添加一个执行进程任务,并将脚本任务的成功流拖往该执行进程任务.并双击进入执行进程任务编辑器.并设置如图:
(1)
(2).进入表达式设置.在Expressions里点击右边的对话按钮.并打开属性表达式编辑器.在属性里选择Arguments.并在表达式里选择OutExecuteCommand变量,如图
(3) 确定返回
五.在控制流里添加一个执行SQL任务.将执行进程任务的成功流拖往该执行SQL任务.并双击进入执行SQL任务编辑器
在Connection里设置为一个连接SQL Server的连接管理器.在SQLStatement里输入:
在参数映射里添加一个参数.变量名选择OutFullName,方向为Input,数据类型为VARCHAR,参数名称为0,参数大小为1024
点击确定返回.
并按F5执行包
2.在压缩文件时,使用了7-Zip进行压缩,所以请到http://www.7-zip.org/下载该压缩工具,由于该压缩工具基于 GNU LGPL 许可协议,所以可自由使用.下载完.安装到E:/7-Zip/ 由于本文使用的是这个路径,所以可以自行设置路径.并在以下使用到7z.exe时指定具体的路径.
一.打开Business Intelligence Development Studio平台.然后文件->新建->项目->选择SSIS项目.
二.菜单中选择SSIS->变量.调出变量窗口.然后新增几个变量.如图:
InFileFolder : 准备压缩文件的目录
InFileType : 准备压缩文件的文件类型.即扩展名
OutExecuteCommand : 执行压缩命令的命令参数
OutFileFolder : 存储压缩文件的目录
OutFileName : 存储压缩文件的文件名
OutFullName : 压缩文件的完整路径和文件名
Password : 压缩文件的密码. *为空是表示不加密码压缩
三.在控制流上添加一个脚本任务.并双击进入脚本任务编辑器
(1)在ReadOnlyVariables 里添加InFileFolder,InFileType,OutFileFolder,Password
(2)在ReadWriteVariables里添加 OutExecuteCommand,OutFileName,OutFullName
(3)脚本语言选择 Visual Basic
(4)点击编辑脚本按钮.进入代码编辑器.
在Main方法里添加如下代码
- VB.NET code
- Public Sub Main() Dim InFileFolder, InFileType, OutFileName, OutFileFolder, OutExecuteCommand, Password, OutFullName As String Dim sYear, sMonth, sDay As String Dim FileDate As String InFileFolder = Dts.Variables("InFileFolder").Value.ToString InFileType = Dts.Variables("InFileType").Value.ToString OutFileFolder = Dts.Variables("OutFileFolder").Value.ToString Password = Dts.Variables("Password").Value.ToString sYear = Now.Year.ToString sMonth = Now.Month.ToString sDay = Now.Day.ToString If sMonth.Length < 2 Then sMonth = "0" & sMonth If sDay.Length < 2 Then sDay = "0" & sDay FileDate = sYear & sMonth & sDay OutFileName = "Archive" & FileDate & ".zip" OutFullName = OutFileFolder & OutFileName OutExecuteCommand = " a -tzip " If Password <> "" Then OutExecuteCommand += "-p""" & Password & """" End If OutExecuteCommand += " """ & OutFullName & """ """ & InFileFolder & "*." & InFileType & """" Dts.Variables("OutFileName").Value = OutFileName Dts.Variables("OutExecuteCommand").Value = OutExecuteCommand Dts.Variables("OutFullName").Value = OutFullName Dts.TaskResult = ScriptResults.SuccessEnd Sub
(5)点击生成并保存退出
四.添加一个执行进程任务,并将脚本任务的成功流拖往该执行进程任务.并双击进入执行进程任务编辑器.并设置如图:
(1)
(2).进入表达式设置.在Expressions里点击右边的对话按钮.并打开属性表达式编辑器.在属性里选择Arguments.并在表达式里选择OutExecuteCommand变量,如图
(3) 确定返回
五.在控制流里添加一个执行SQL任务.将执行进程任务的成功流拖往该执行SQL任务.并双击进入执行SQL任务编辑器
在Connection里设置为一个连接SQL Server的连接管理器.在SQLStatement里输入:
- SQL code
- exec msdb.dbo.sp_send_dbmail @profile_name='myfend', @recipients='myfend@hotmail.com', @subject='测试附件', @file_attachments=?
在参数映射里添加一个参数.变量名选择OutFullName,方向为Input,数据类型为VARCHAR,参数名称为0,参数大小为1024
点击确定返回.
并按F5执行包
- SSIS压缩文件并以邮件附件发送
- SSIS压缩文件并以邮件附件发送
- 以邮件附件形式发送文件
- MimeMessage 发送邮件附件
- android 发送邮件附件
- VBA检查发送邮件附件
- 以流的形式发送压缩文件到页面
- ABAP获取用户登录详细信息并已邮件附件的形式发送给你
- 邮件附件批量发送系统二
- ASP.NET发送邮件附件代码
- kettle 发送邮件附件乱码问题
- 邮件附件
- 邮件附件
- 邮件附件批量发送系统二使用手册
- java发送邮件及邮件附件代码实例
- SMTP发送邮件附件问题已经得到解决!!!
- android中使用javamail发送邮件附件
- android中使用javamail发送邮件附件
- 硬件设计基础:什么是 rail-to-rail运算放大器?
- java程序员面试宝典
- 有一种感动,叫作守口如瓶
- Java位运算符号操作
- 基于prototype的动态加载js的一个类
- SSIS压缩文件并以邮件附件发送
- Sql语句学习指南
- Spring中quartz的简单例子
- shell处理字符串记录
- Hibernate中Criteria的完整用法
- 营销数据库的建设——应用洞察最大化客户价值的源动力(转)
- CRUD 是什么
- 汇编语言发展树
- QClub:敏捷在互联网时代产品研发中的实践(12.27 深圳)