数据转换服务的心脏: DTS包
三、如何调用DTS包
一般有4种方式执行DTS包。
1. 在Enterprise Manager中执行。
这种方式使用得最为广泛。在导入导出向导中,如果在最后一步选中“立即执行”,就可以执行当前建立的包。在本地包中选择“执行包”,同样也可以执行保存后的包。当然,还可以使用“调度包管理”定期执行相应的包。
2. 使用命令行工具dtsrun执行DTS包。
dtsrun是SQL Server提供的一个用来执行保存在SQL Server中或是保存成文件的DTS包的一个工具。它的参数比较复杂,读者可以查阅相关的资料。在这里只举几个例子说明如何使用dtsrun。
执行结构化存储文件DTS包
dtsrun /Ffilename /Npackage_name /Mpackage_password
执行保存在SQL Server msdb数据库中的DTS包
dtsrun /Sserver_name /Uuser_nName /Ppassword /Npackage_name /Mpackage_password
执行保存在Meta Data Services中的DTS包
dtsrun /Sserver_name /Uuser_nrame /Ppassword /Npackage_name /Mpackage_password /Rrepository_name
3. 使用图形界面工具dtsrunui执行DTS包。
使用这个工具非常简单,它没有任何参数,只需在控制台中输入dtsrunui并执行后,就会出现一个操作界面,只需要按提示输入相应的信息,并选择相应的DTS包执行即可。
4. 通过程序调用DTS包。
由于DTS提供了COM接口,因此,可以通过它所提供的COM组件中的Execute方法来执行DTS包。
DTS的COM组件非常复杂,在这里只给出了使用VB如何执行DTS包的程序片段以供参考。
一般可分为4步设计这个程序。
(1) 声明变量。
在这里需要声明4个类型的变量。DTS.Package2、DTS.Step、DTS.Task和DTS.ExecutePackageTask。
(2) 初始化变量。
除了DTS.Package变量需要使用Set Package1 = new DTS.Package实例化外,其它的变量需要Package1实例进行初始化。
Set Step1 = Package1.Steps.New '建立一个新步骤
Set Task1 = Package1.Tasks.New("NewTask") '建立一个新任务
Set Exec1 = Task1.CustomTask
Exec1.FileName = "abc.dts" '用于执行以结构化存储的DTS包
Exec1.Name = "ExecTask"
Step1.TaskName = Exec1.Name
Step1.Name = "Step1"
Step1.ExecuteInMainThread = true
Package1.Steps.Add Step1
Package1.Tasks.Add Task1
(3) 执行DTS包。
只需要执行一条语句即可:Package1.Execute
(4) 释放引用
Set Exec1 = Nothing
Set Task1 = Nothing
Set Step1 = Nothing
Package1.UnInitialize '调用UnInitialize方法释放包
Set Package1 = Nothing
