技术开发 频道

数据转换服务的心脏: 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
0
相关文章