使用C#.NET创建DTS自定义的任务

本文描述了如何利用Visual C#.net 创建一个DTS 自定义的任务。你可以通过C#.net创建自定义的任务的方式扩展DTS的功能。之后你可以安装并注册任务,他讲出现在DTS设计其中,就像默认的DTS任务。总之,你能够使用.NET Framework创建自定义的任务。

在本文中除了讲创建一个DTS自定义任务外,还包括一下部分内容:

1、这篇文章中自定义的代码分为编译、注册和安装自定义任务;

2、这部分一个有特色的部分就是你可以运行自定义的任务;

3、在开发过程中你可以使用本文提及的一些工具(除非另有说明,这些工具已经包含在.NET中了,您可以通过.NET的命令行运行这些工具)。

为DTSSpkg.dll创建一个及时的包

如果一个基于微软.NET客户机访问一个COM组件,你必须使用一个包(这个组件包含的)。这类的包是及时的运行包(RCW)并且你也可以通过开放Dtspkg.dll的类型库编译。你也可以使用类型库导出工具(Tlbimp.exe)编译RCW,如:

tlbimp.exe “C:\ProgramFiles\Microsoft SQLServer\80\tools\Binn\dtspkg.dll”/out:Microsoft.SQLServver.DTSPKG80.dll/keyfile:DTSPkg.snk

“/keyfile”参数代表Microsoft.SQLServer.DTSPkg80.dll带有强类型名用public或private关键字。使用强类型名工具(sn.exe)在DTSPkg.snk 前创建关键字:

sn.exe –k DTSPkg.snk

你应该使用一个强类型名像其他的全局集合缓存,因为你安装了运行包。

在全局集合缓存中安装运行包

用全局集合缓存工具(GaCutil.exe)安装运行包:

gacutil.exe /I Microsoft.SQLServer.DTSPkg80.dll

安装了运行包后,你可以像添加.NETC#工程中的引用一样的添加。

为自定义的任务添加代码

代码的自定义注册。.NET没有开放DllReginsterServer 和DllUnregisterServer 像COM组件的入口,但是你可以使用ComRegisterFunctionAttribute 类执行任务注册和撤销注册。在自定义类声明之前添加下面代码:

[Guid("A39847F3-5845-4459-A25E-DE73A8E3CD48"), ComVisible(true)]
[ProgId("DTS.SimpleTask")]
public class SimpleTask : CustomTask
{
//implementation of custom task
}

下面的代码是一个函数注册的范例执行。函数的全部代码在自定义任务的编译、注册和安装部分 。

[System.Runtime.InteropServices.ComRegisterFunctionAttribute()]
static void RegisterServer(Type t)
{
//code to register custom task
}

注册函数增加下面的键值用来注册。

HKEY_CLASSES_ROOT\CLSID\A39847F3-5845-4459-A25E-DE73A8E3CD48\Implemented Categories\{10020200-EB1C-11CF-AE6E-00AA004A34D5}

10020200-EB1C-11CF-AE6E-00AA004A34D5是DTS包对象的类编号。因为所有的自定义的任务执行自定义的接口所以必须注册。注册函数添加下面的注册键值:

HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\80\DTS\Enumeration\Tasks\A39847F3-5845-4459-A25E-DE73A8E3CD48

下面的DTS任务缓存目录列表,使自定义的任务出现在DTS设计器中:

HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\80\DTS\Enumeration\Tasks\

时间: 2024-07-28 14:31:20

使用C#.NET创建DTS自定义的任务的相关文章

progressbar-android动态创建progressBar自定义样式不显示。

问题描述 android动态创建progressBar自定义样式不显示. 我自定义progressBar样式的时候,在xml布局文件里用style=自己在styles文件中定义的style可以实现. 用程序动态创建的时候,progressbar = new progressbar(this)也可以实现,但没法自定义,是使用的默认的. 如果用progressbar = new progressbar(this,null,style1)就实现不了,啥都不显示,该怎么办呢? 解决方案 好吧,没人回答,

Enterprise Library深入解析与灵活应用(4):创建一个自定义Exception Handl

Enterprise Library深入解析与灵活应用(4):创建一个自定义Exception Handler改变ELAB的异常处理机制 1.背景与动机 微软Enterprise Library ELAB(Exception Handling Application Block)提供了一种基于策略(Policy)的异常 处理方式,在不同的环境中,比如多层架构中不同的层次中,我们可以定义不同的异常处理策略.对于ELAB来说,Exception Handling Policy = Exception

WSS3SDK之通过Feature创建一个自定义列表定义

本任务中将演示如何创建一个自定义列表模板的Feature,并将其添加到创建页面中的可供选择的可用列表模板中.添加一个自定义列表定义需要您提供下列3个文件: Feature.xml 用于注册列表模板. Elements.xml 将列表模板添加到创建页面中. Schema.xml 定义了该列表的架构,与哪些内容类型相关联,字段和视图的定义,窗体和工具栏的引用等. 步骤 在Local_Drive:\Program Files\Common Files\Microsoft Shared\web serv

Swift类型创建之自定义一个类型详解

  这篇文章主要介绍了Swift类型创建之自定义一个类型详解,本文讲解了自定义原型.实现默认值.支持基本布尔型初始化.支持Bool类型判断.支持兼容各们各派的类型.完善OCBool的布尔基因体系等内容,需要的朋友可以参考下 小伙伴们,Swift中的Bool类型有着非常重要的语法功能,并支撑起了整个Swift体系中的逻辑判断体系,经过老码的研究和学习, Bool类型本身其实是对基础Boolean类型封装,小伙伴们可能咬着手指头问老码,怎么一会Bool类型,一会Boolean类型,其区别在于,前者是

《iOS 6核心开发手册(第4版)》——2.16节秘诀:创建可自定义的分页滚动条

2.16 秘诀:创建可自定义的分页滚动条 iOS 6核心开发手册(第4版) 程序清单2-1引入了一个基本的分页滚动条,但是没有给方程式添加任何动态交互.那个示例开始和结束于3个页面.在现实生活中,当可以自由地添加和删除页面时,页面控件要有用得多.秘诀2-10正好用于此任务.它添加了一些按钮,用于为UIScrollView构建和删除视图. 这种方法使用4个(而不是两个)单独的控件来产生图2-10所示的添加和删除交互.4个按钮包括一个使用标准的Contacts Add按钮样式构建的添加按钮,一个模仿

asp.net-调用百度地图API创建一个自定义地图实现区分内外环

问题描述 调用百度地图API创建一个自定义地图实现区分内外环 我现在想做一个根据输入的地址,来区分城市的内外环.该怎么做,百度地图API好像没有直接可调用的接口 解决方案 这个需要自己去判断的.没办法直接根据坐标判断. 解决方案二: 你收集好每个城市的内外环的百度地图经纬度采样点放入数据库,然后依据用户输入的地址解析得到的经纬度和数据库对比得到是内或者外环 内外环数据采样点只能人工收集..

微信公众平台-微信开发,编辑模式下创建的自定义菜单,微信会推送数据包给开发者么?求大神解答,急

问题描述 微信开发,编辑模式下创建的自定义菜单,微信会推送数据包给开发者么?求大神解答,急 微信开发,编辑模式下创建的自定义菜单,微信会推送数据包给开发者么?求大神解答,急 解决方案 编辑模式?开发模式吧..开发模式下发布的新信息也会推送给客户 解决方案二: 编辑模式?开发模式吧..开发模式下发布的新信息也会推送给客户

请教VB.net创建excel自定义函数

问题描述 自己研究了好久也没成功,请教一下,怎么用vb.net创建excel自定义函数,多谢! 解决方案 解决方案二:没搞懂你的意思?你是指,给未打开的EXCEL文件创建函数?如果是这样,需要解析整个EXCEL文件格式,这难度太大了!还是,让EXCEL文件可以调用的VB函数?编个DLL或EXE执行文件,让EXCEL文件中的VBA代码调用就好了!解决方案三:你好,是这样的,在excel中可以在VBE中用VBA编写自定义函数,制作成加载宏,然后可以在整个excel中使用我现在想用vb.net实现这个

在ASP.NET 2.0中操作数据之六十:创建一个自定义的Database-Driven Site Map Provider_自学过程

导言: ASP.NET 2.0的网站地图(site map)功能允许页面开发者在一些持久介质(persistent medium),比如一个XML文件里,自己定义一个web程序的site map.一旦定义了之后,我们可以通过System.Web命名空间的SiteMap class类或某个Web导航控件,比如SiteMapPath, Menu, 或TreeView来对其进行访问.site map系统使用的是provider model模式,所以可以创建不同的site map,并将其应用到一个web