通过VisualC#.NET建一个DTS任务
本文描述了如何使用Visual C#。net创建DTS自定义任务。您可以通过C#.net创建自定义任务来扩展DTS的功能,之后您可以安装并注册该任务,它会出现在DTS设计中,就像默认的DTS任务一样。简而言之,您可以使用。NET Framework来创建自定义任务。
在本文中,除了创建DTS自定义任务之外,还包括以下内容:
1.本文中的自定义代码分为编译、注册和安装自定义任务;
2.这部分的一个与众不同的地方是可以运行自定义任务;
3.在开发过程中,您可以使用本文中提到的一些工具(除非另有说明,这些工具已经包含在。NET的命令行来运行这些工具。网)。
为DTSSpkg.dll创造一个及时的一揽子计划。
如果一个微软。基于. NET的客户端访问COM组件,您必须使用一个包(包含在该组件中)。这种包是一个即时运行包(RCW ),你也可以通过开放的Dtspkg.dll类型库编译它。你也可以使用类型库导出工具(Tlbimp.exe)来编译RCW,比如:
tlbimp.exe " C:\ program files \ Microsoft SQL server \ 80 \ tools \ Binn \ dtspkg . dll "/out:微软。SQLServver.DTSPKG80.dll/keyfile:DTSPkg.snk
“/keyfile”参数使用public或private关键字表示具有强类型名称的Microsoft.SQLServer.DTSPkg80.dll。使用强类型名称工具(sn.exe)在DTSPkg.snk之前创建关键字:
sn.exe–k dtspkg . snk
您应该像其他全局集合缓存一样使用强类型名称,因为您安装了正在运行的包。
在全局集合缓存中安装正在运行的包。
安装带有全局集合缓存工具的运行包(GaCutil.exe):
gacutil.exe/Microsoft.SQLServer.DTSPkg80.dll
安装运行包后,您可以像在. NETC#项目中引用一样添加它。
为自定义任务添加代码。
代码的自定义注册。。NET不像COM组件那样打开DllReginsterServer和DllUnreGISterServer的门户,但是可以使用ComRegisterFunctionAttribute类来执行任务注册和注销。在自定义类声明之前添加以下代码:
[Guid(" a 39847 f 3-5845-4459-A25E-de 73 A8 E3 CD 48 "),ComVisible(true)]
[ProgId("DTS。简单任务")]
公共类SimpleTask : CustomTask
{
//自定义任务的实现
}
下面的代码是一个函数注册的例子。所有函数的代码都在自定义任务的编译、注册和安装部分。
【系统。runtime . interop services . comregisterfunctionattribute()]
静态void注册服务器(t型)
{
//注册自定义任务的代码
}
注册函数为注册添加以下键值。
HKEY _类_根\ CLSID \ a 39847 f 3-5845-4459-A25E-de 73 A8 E3 CD 48 \实现的类别\ { 10020200-EB1C-11CF-AE6E-00aa 004 a 34d 5 }
10020200-EB1C-11CF-AE6E-00a 004 a 34d 5是DTS包对象的类别号。因为所有自定义任务都执行自定义接口,所以必须注册它们。注册功能添加以下注册键值:
HKEY _当前_用户\软件\微软\微软SQL Server \ 80 \ DTS \枚举\任务\ a 39847 f 3-5845-4459-A25E-de 73 A8 E3 CD 48
下面的DTS任务缓存目录列表使自定义任务出现在DTS设计器中:
HKEY _当前用户\软件\ Microsoft \ Microsoft SQL Server \ 80 \ DTS \枚举\任务\
下面的代码演示了未注册函数的任务移除的执行。注册函数是。NET运行时。要浏览该函数的完整代码,可以阅读“编译、注册和安装自定义任务”一节:
【系统。runtime . interop services . comunregisterfunctionattribute()]
静态void unregister server(t类型)
{
//注销自定义任务的代码
}
免注册功能通过从注册表中删除以下键值来从DTS任务缓存中删除任务
HKEY _当前_用户\软件\微软\微软SQL Server \ 80 \ DTS \枚举\任务\ a 39847 f 3-5845-4459-A25E-de 73 A8 E3 CD 48
最后,像dual_interface COM组件一样打开自定义任务。从所有类的公共、非静态字段、属性和方法创建一个默认接口。在自定义任务源文件中使用以下代码行后:
[assembly:class interface(class interface type。自动双重)]
这部分代码已经完整列出。
添加功能性自定义任务。
本文的“编译、注册和安装自定义任务”一节包含一个简单的DTS自定义任务代码。该任务有两个属性:Name和Description,Description属性的值将出现在消息框中。这个例子描述了一个最小的代码。您可以使用现有的功能性DTS来定义任务。但是,您可以通过执行CustomTaskUI接口来创建用户界面,但这一点不在讨论之列。通过只执行自定义界面,DTS设计器为自定义任务创建了一个默认用户界面。
执行自定义任务接口的所有DTS自定义任务。自定义用户界面由两个属性组成,一个集合和一个方法:
1.名称和描述属性;
2.属性集;
3.执行方法。
的所有自定义任务都应执行属性、属性集和执行方法。
位律师回复
0条评论