选择显示字体大小

通过visual c#.net建一个dts任务(1)

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

为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\

下面的代码示范非注册函数的任务移出的执行。面注册函数是comunregisterfunctionattribute类在.net运行库的一部分。想浏览这个函数的完整代码,你可以看“编译、注册和安装自定义任务”部分:

[system.runtime.interopservices.comunregisterfunctionattribute()]

static void unregisterserver(type t)

{

//code to unregister custom task

}


免注册函数通过从注册表中删除下面键值从dts任务缓存中移出任务

hkey_current_user\software\microsoft\microsoft sql server\80\dts\enumeration\tasks\a39847f3-5845-4459-a25e-de73a8e3cd48

最后,自定义的任务像dual_interface com组件一样被开放。您从所有的类的public,非静态的字段,属性和方法创建一个默认的接口。在下面的一行代码在自定义任务源文件中using应用之后:

[assembly:classinterface(classinterfacetype.autodual)]

这部分的代码已经完全列举了。

增加功能性的自定义任务

本文“编译、注册和安装自定义任务”部分包含一个简单的dts自定义任务代码。 任务有两个属性:name 和description,description属性的值就会出现在消息框中。这个例子的描述了一个最小化的代码你可以使用已有的功能性的dts定义任务。然而,你可以通过执行customtaskui接口创建一个用户界面,但是那并不作讨论。通过只执行自定义的接口,dts设计者为自定义任务创建一个默认的有户界面。

所有的dts自定义任务执行自定义任务接口。自定义的用户接口是由两个属性,一个集合和一个方法:

1、 name和description属性;

2、 properties集;

3、 execute方法。 

所有的自定义任务应该执行属性、属性集和execute方法。 


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons