Excel demo in SSIS
需求如下,把异常数据从sqlserver数据库中取出来,然后导入到xls中去,然后再发邮件给用户,把xls作为附件发送。
需要的示例数据表: /* create table abnormaldata(rowid bigint , rowname nvarchar(20) ,rowvalue nvarchar(100)); insert into abnormaldata(rowid,rowname,rowvalue) values(1,'studentname','studentA'); insert into abnormaldata(rowid,rowname,rowvalue) values(1,'age','24'); insert into abnormaldata(rowid,rowname,rowvalue) values(2,'studentname','studentB'); insert into abnormaldata(rowid,rowname,rowvalue) values(2,'age','25'); insert into abnormaldata(rowid,rowname,rowvalue) values(3,'studentname','studentC'); insert into abnormaldata(rowid,rowname,rowvalue) values(3,'age','26'); insert into abnormaldata(rowid,rowname,rowvalue) values(4,'studentname','studentD'); insert into abnormaldata(rowid,rowname,rowvalue) values(4,'age','27'); insert into abnormaldata(rowid,rowname,rowvalue) values(5,'studentname','studentE'); insert into abnormaldata(rowid,rowname,rowvalue) values(5,'age','28'); insert into abnormaldata(rowid,rowname,rowvalue) values(6,'studentname','studentF'); insert into abnormaldata(rowid,rowname,rowvalue) values(6,'age','29'); */

我的机器环境是win7 64bit,默认会报如下的错误,是因为oledb没有64位的driver.错误的提示非常明显,而且也指出了如何改正,就是在32位下运行。
[Connection manager "Excel Connection Manager"] Error: The requested OLE DB provider Microsoft.Jet.OLEDB.4.0 is not registered. If the 64-bit driver is not installed, run the package in 32-bit mode. Error code: 0x00000000.
An OLE DB record is available. Source: "Microsoft OLE DB Service Components" Hresult: 0x80040154 Description: "Class not registered".

当然,这只是在开发了阶段debug的选 项,如果我们使用jobagent进行调用的时候,有一个类似的选项可以进行选定。

但如果我们是使用第三方的调度工具,把package写在一个batch文件里面使用Dtexec进行调用的时候,我们则需要注意了。
我们默认在cmd实用程序中调用的dtexec与你的OS版本是一致的,譬如你的os是64位的,一般情况下你调用的则是64位的。

这样仍是会报错的,而你直接双击package跳出来的执行应用程序DTEXECUI默认则是32位的,所以你可以执行成功。
需要注意的是如果是使用batch调用,则需要指定x86文件夹下的32位实用程序。你需要在batch file中这样写:
"C:\Program Files (x86)\Microsoft SQL Server\110\DTS/Binn\DTEXEC.EXE" /FILE "\"C:\Users\Student\Documents\Visual Studio 2010\Projects\Integration Services Project1\Integration Services Project1\Excel demo.dtsx\"" /CHECKPOINTING OFF /REPORTING EWCDI
因为我的需求是需要把这个xls作为附件通过邮件发送出去的,我原来直接使用send mail task.来做这件事,当我的xls达到3M的时候,基本上就超时了,因为send mail task默认是100秒,如果发不出去,就报超时的错误,而且不可更改这个参数。
所以我就使用了script task然后通过c#代码来做这件事,但是需要指定一下clienttimeout指定个合适的值,注意它是以millionsencod为基准的。
剩下的就是清除xls中的内容,以供下一次使用。可以使用drop table '…'注意不是delete. 这个drop 不会把sheet去除,只是清除所有的内容,所以需要使用create table再做一件schema.

完整的SSIS package是这样的:fx是因为我使用了一个变量来判断rowcount是否大于0,否则就不做下面的事了。

Excel demo in SSIS的更多相关文章
- excel 导入数据库 / SSIS 中 excel data source --64位excel 版本不支持-- solution
当本地安装的excel(2013版) 是64-bit时:出现的以下两种错误 解决: 1. excel 导入数据库 , 如果文件是2007则会出现:“The 'Microsoft.ACE.OLEDB.1 ...
- linux poi生成excel demo调试附调用代码
1.下载poi-3.9-20121203.jar包 2.java code package com.userpackage; import java.io.FileOutputStream; impo ...
- XLSX.js 导出Excel demo
GitHub:https://github.com/SheetJS/js-xlsx 一个js操作Excel的工具,如下代码,很方便的就将json数据导出为Excel文件. 使用示例: //json 数 ...
- 在SSIS 的 64 位版本中不支持 Excel 连接管理器
Microsoft sql server 2008 R2——> SQL SERVER Business Intelligence Development Studio 使用EXCEL数据源或目标 ...
- 关于SSIS批量抽取Excel文件报0x80004005错误的解决办法
原文:关于SSIS批量抽取Excel文件报0x80004005错误的解决办法 标题: Microsoft Visual Studio ------------------------------ Pa ...
- 在SSIS 的 64 位版本中不支持 Excel 连接管理器[转]
Microsoft sql server 2008 R2——> SQL SERVER Business Intelligence Development Studio 使用EXCEL数据源或目标 ...
- VB操作EXCEL文件
用VB操作Excel(VB6.0)(整理) 首先创建Excel对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel. ...
- Microsoft.Office.Interop.Excel的用法以及利用Microsoft.Office.Interop.Excel将web页面转成PDF
1.常见用法 using Microsoft.Office.Interop.Excel; 1)新建一个Excel ApplicationClass ExcelApp = New A ...
- Microsoft.Office.Interop.Excel的用法
1)ApplicationClass ExcelApp = New ApplicationClass(); 2) 更改 Excel 标题栏: ExcelApp.Caption := '应用程序调用 M ...
随机推荐
- IIS配置ASP.NET和服务器错误页
以下两种方法均为全站出错处理 方法一: 1.在Web.config配置文件中<system.web></system.web>中添加<customErrors mode= ...
- 二、SQL语句映射文件(1)resultMap
//备注:该博客引自:http://limingnihao.iteye.com/blog/106076 SQL 映射XML 文件是所有sql语句放置的地方.需要定义一个workspace,一般定义为对 ...
- Hibernate框架之入门
1.Hibernate框架简述 Hibernate的核心组件在基于MVC设计模式的JAVA WEB应用中,Hibernate可以作为模型层/数据访问层.它通过配置文件(hibernate.proper ...
- 六个创建模式之抽象工厂模式(Abstract Factory Pattern)
问题: 使用工厂方法模式的主要问题是工厂类过多,每个产品对应一个工厂,不利于维护.因此可以考虑使用一个工厂创建一个产品族. 定义: 提供创建一些列相关或相互依赖的对象实例的接口,这些类可以称为一个产品 ...
- [Xamarin.Android] ActionBar Tips
[Xamarin.Android] ActionBar Tips ActionBar用途 快速搞懂 ActionBar的用途,可以参考下列文章: [Android]使用 ActionBarCompat ...
- Android 正则表达式
1.相关知识链接 正则表达式语法 https://msdn.microsoft.com/zh-cn/library/ae5bf541(v=vs.80).aspx 正则表达式入门教程 http: ...
- 安卓开发_慕课网_ViewPager与FragmentPagerAdapter实现Tab实现Tab(App主界面)
学习内容来自“慕课网” ViewPager与FragmentPagerAdapter实现Tab 将这两种实现Tab的方法结合起来.效果就是可以拖动内容区域来改变相应的功能图标亮暗 思路: Fragme ...
- wxPython简单入门
wxPython简介 wxPython 是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的.功能键全的 GUI 用户界面. wxPython 是作为优秀 ...
- 【转】IOS开发资源汇总
转自:http://blog.csdn.net/favormm/article/details/6664970 如何用Facebook graphic api上传视频: http://develope ...
- ShareSDK短信验证码集成详细步骤
1.这里使用的是ShareSDK网的短信验证码SDK 官网 http://www.mob.com 先去http://www.mob.com/#/reg 注册成为开发者 填写相应的信息,邮箱账号,然后 ...