SSIS自定义数据流组件开发(血路)
由于特殊的原因(怎么特殊不解释),需要开发自定义数据流组件处理。
查了很多资料,用了不同的版本,发现各种各样的问题没有找到最终的解决方案。
遇到的问题如下:
用VS2015编译出来的插件,在SSDTBI(其实也是集成在VS中用于开发SSIS包的) 2015版本中dubug时会提示:
错误 Validation error. Data Flow Task test_displayName [85]: System.MissingMethodException:
找不到方法:“
Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData100
Microsoft.SqlServer.Dts.Pipeline.PipelineComponent.get_ComponentMetaData()”。
在 Genius.SsisModule.DataFlow.GetSeqs.AcquireConnections(Object transaction)
在 Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostAcquireConnections(IDTSManagedComponentWrapper100 wrapper, Object transaction) Package.dtsx 0
注意这里的红色部分,我反编译了Microsoft.SqlServer.Dts.Pipeline.PipelineComponent类,发现是在访问ComponentMetaData属性时候,内部调用的一个方法。无解!!!
解决办法:
项目那里右键-属性,然后将目标数据库版本从SQL SERVER 2016 改为SQL SERVER 2014 。现在可以正常调试了

然后把SSDTBI工具换成2013,会提示:
[自定义数据流入库组件 [83]] Error: System.InvalidCastException: 无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData100”。此操作失败的原因是对 IID 为“{BE8C48A3-155B-4810-BA5C-BDF68A659E9E}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 不支持此接口 (异常来自 HRESULT:0x80004002 (E_NOINTERFACE))。
在 System.StubHelpers.StubHelpers.GetCOMIPFromRCW(Object objSrc, IntPtr pCPCMD, IntPtr& ppTarget, Boolean& pfNeedsRelease)
在 Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData100.get_Name()
在 Genius.SsisModule.SsisModule.BasicComponent.ProcessInput(Int32 inputID, PipelineBuffer buffer)
在 Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostProcessInput(IDTSManagedComponentWrapper100 wrapper, Int32 inputID, IDTSBuffer100 pDTSBuffer, IntPtr bufferWirePacket)
然后把VS换成2010编译插件,在SSDTBI2013中会提示“null"值对于”Stream“无效
然后把VS换成2010编译插件,在SSDTBI2015中会现XXXXX(忘记具体什么错误了)
就这件事我已经折腾了4天了,能找到的资源非常少,各种版本的VS和SSDTBI都差不多试过了。。
就在快要放弃的时候,发现用VS2015编译的插件,虽然在SSDTBI2015中debug的时候会出现,但包用dtexec 工具调用的时候可以正常执行。
如: dtexec /f "D:\SsisPkg\c.dtsx"
所以最终都使用2015进行处理!
-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX分隔线XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-
下面内容是将是我成功执行的记录
-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX分隔线XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-
SSIS自定义数据流组件开发(血路)的更多相关文章
- 饿了么基于Vue2.0的通用组件开发之路(分享会记录)
Element:一套通用组件库的开发之路 Element 是由饿了么UED设计.饿了么大前端开发的一套基于 Vue 2.0 的桌面端组件库.今天我们要分享的就是开发 Element 的一些心得. 官网 ...
- MIP组件开发 自定义js组件开发步骤
什么是百度MIP? MIP(Mobile Instant Pages - 移动网页加速器)主要用于移动端页面加速 官网参考:https://www.mipengine.org/doc/00-mip-1 ...
- SSIS 剖析数据流之:连接和查找转换
在SSIS的数据流组件中,SSIS引擎使用Merge Join组件和 Lookup组件实现TSQL语句中的inner join 和 outer join 功能,Lookup查找组件的功能更类似TSQL ...
- Android Studio开发基础之自定义View组件
一般情况下,不直接使用View和ViewGroup类,而是使用使用其子类.例如要显示一张图片可以用View类的子类ImageView,开发自定义View组件可分为两个主要步骤: 一.创建一个继承自an ...
- Flex自定义组件开发之日周月日期选择日历控件
原文:Flex自定义组件开发之日周月日期选择日历控件 使用过DateField的我们都知道,DateField 控件是用于显示日期的文本字段,字段右侧带有日历图标.当用户在控件边框内的 ...
- h5 录音 自动生成proto Js语句 UglifyJS-- 对你的js做了什么 【原码笔记】-- protobuf.js 与 Long.js 【微信开发】-- 发送模板消息 能编程与会编程 vue2入坑随记(二) -- 自定义动态组件 微信上传图片
得益于前辈的分享,做了一个h5录音的demo.效果图如下: 点击开始录音会先弹出确认框: 首次确认允许后,再次录音不需要再确认,但如果用户点击禁止,则无法录音: 点击发送 将录音内容发送到对话框中.点 ...
- 自定义组件开发:使用v-model封装el-pagination组件
1.前言 通过封装el-pagination组件开发自定义分页组件的类似文章网上已经有很多了,但看了一圈,总是不如意,于是决定还是自己动手搞一个. 2.背景 2.1.常规分页处理方法 利用el-pag ...
- 在Vue前端项目中,附件展示的自定义组件开发
在Vue前端界面中,自定义组件很重要,也很方便,我们一般是把一些通用的界面模块进行拆分,创建自己的自定义组件,这样操作可以大大降低页面的代码量,以及提高功能模块的开发效率,本篇随笔继续介绍在Vue&a ...
- 浅尝Spring注解开发_自定义注册组件、属性赋值、自动装配
Spring注解开发 浅尝Spring注解开发,基于Spring 4.3.12 包含自定义扫描组件.自定义导入组件.手动注册组件.自动注入方法和参数.使用Spring容器底层组件等 配置 @Confi ...
随机推荐
- php 画图片
<?php // 使用php操作gd库做图 // 1. 创建一个画布资源 $im = imagecreatetruecolor(80, 40); // 2. 画内容 // 2.1 先位画布准备颜 ...
- Container With Most Water -- LeetCode 11
Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). ...
- calender 软文
http://www.cnblogs.com/cloudgamer/archive/2008/08/23/1274459.html
- CentOS下查看进程和删除进程
1. 在 LINUX 命令平台输入 1-2 个字符后按 Tab 键会自动补全后面的部分(前提是要有这个东西,例如在装了 tomcat 的前提下, 输入 tomcat 的 to 按 tab).2. ps ...
- gulp问题
刚刚又碰到gulp的一个小问题,就是改变src下的index.scss时碰到问题后监听就会立即停止,这很蛋疼: 解决办法就是在gulpfile.js中做一点改变:
- android中常用转义字符
转义字符 实际字符 名称 < < 小于号 > > 大于号 & & 和 ' ' 单引号 " " 双引号
- Bullet核心类介绍(Bullet 2.82 HelloWorld程序及其详解,附程序代码)
实验平台:win7,VS2010 先上结果截图: 文章最后附有生成该图的程序. 1. 刚体模拟原理 Bullet作为一个物理引擎,其任务就是刚体模拟(还有可变形体模拟).刚体模拟,就是要计算预测物体的 ...
- EMV文档:接收到的ATR不在EMV规定范围,终端需要的操作
Required terminal behaviour in the event that a terminal receives characters outside the range allow ...
- nginx限制单个IP访问配置
最近公司做了一个砸金蛋的活动,经过几天的发酵宣传后,每天以几万的的用户数在增长,后面才发现原来有人专门为此开发了一个全自动注册的软件 一时间网站被刷得打开异常缓慢,查看日志发现大部分都是用软件在刷,于 ...
- The Non-Inverting Amplifier Output Resistance by Adrian S. Nastase [ Copied ]
Source Address: http://masteringelectronicsdesign.com/the-non-inverting-amplifier-output-resistance/ ...