Delphi的DTS编程

简介: 一、DTS简介 DTS为导入导出模块,在SQL SERVER中有专门的导入导出工具   二、调用SQL SERVER导出的包 若要执行保存为COM结构化的存储文件DTS包,使用dtsrun /Ffilename /Npackage_name /Mpackage_password 若要执行保...

一、DTS简介

DTS为导入导出模块,在SQL SERVER中有专门的导入导出工具

 

二、调用SQL SERVER导出的包

若要执行保存为COM结构化的存储文件DTS包,使用dtsrun /Ffilename /Npackage_name /Mpackage_password

若要执行保存在SQL SERVER msdb中的DTS包,使用

dtsrun /Sserver_name /Uuser_name /Ppassword /Npackage_name /Mpackage_password

若要执行保存在Meta Data Services中的DTS包,使用:

dtsrun /Sserver_name /Userver_name /Ppassword /Npackage_name /Mpackage_password /Rrespository_name

 

例如:服务器名为server,用户名:sa,密码:test,包名:SaleToAccess,包密码:test

var

    str:string;

begin

    str :='exec master.dbo.xp_cmdshell "dtsrun /Sserver /Usa /Ptest /NSaleToAccess /Mtest"';

    adoquery1.Close;

    adoquery1.Sql.Text :=str;

    adoquery1.Open;

end;

 

三、利用程序直接调用DTS

1.首先在Delphi中加入Microsoft DTSPackage Object Library

2.在工程中引用DTS_TLB

3.在窗体中加入一按钮,假定在C盘下有1.mdb,2.mdb,且两库的表名与结构都相同,1.mdb中有数据,2.mdb中无数据,现要求将1.mdb的cailiao_gongying表中的数据导入到2.mdb的cailiao_gongying中去,代码实现如下:

procedure TForm1.Button1Click(Sender:TObject) ;

 

    procedure oCustomTask2_Trans_S!(oCustromTask2:DataPumpTask2);

    var

        oTransformationOld:Transformation2;

        oTransformation:Transformation2;

    begin

        oTransformationOld :=oCustomTask2.TransformationOld as Transformation2;

        oTransformation :='DirectCopyXform'; 

        oTransformation.TransformFlags :=63;

        oTransformation.ForceSourceBlobsBuffered :=0;

        oTransformation.InMemoryBlobSize :=1048576;

        oTransformation.TransformPhaces :=4;

        oCustomTask2.Transformations.Add(oTransformation);

        oTransformation :=nil;

        oTransformationOld :=nil;

    end;

 

var

    opackageold:package;

    opackage:package2;

    dts_conn,dts_conn2:connection;

    dts_task:task;

    dts_customtask:customtask;

    dts_pumptask:datapumptask2;

    dts_step:step;

begin

    opackageold:=CoPackage.Create;

    opackage:=opackageold as package2;

    dts_conn:=opackage.Connections.new('Microsoft.Jet.OLEDB.4.0');

    dts_conn.ID :=1;

    dts_conn.DataSource:='C:\1.mdb';

    dts_conn2:=opackage.Connections.new('Microsoft.Jet.OLEDB.4.0');

    dts_conn2.ID :=2;

    dts_conn2.DataSource:='C:\2.mdb';

    opackage.Connections.Add(dts_conn);

    opackage.Connections.Add(dts_conn2);

    dts_step:=opackage.Step.New;

    dts_task:=opackage.Task.New('DTSDataPumpTask');

    dts_task.Name:='Copy Data from 1.mdb to 2.mdb';

    dts_customtask:=dts_task.CustomTask;

    dts_pumptask:=dts_customtask as dtapumptask2;

    dts_pumptask.Name:='Copy Data from 1.mdb to 2.mdb';

    dts_pumptask.SourceConnectionID :=1;

    dts_pumptask.SourceSQLStament:='select * from cailiao_gongying';

    dts_pumptask.DestictionConnectionID:=2;

    dts_pumptask.DestictionSQLStatement:='select * from cailiao_gongying';

    dts_pumptask.progressRowCount:=100;

    dts_pumptask.MaximumErrorCount:=0;

    dts_pumptask.FetchBufferSize :=1;

    dts_pumptask.UseFastLoad:=True;

    dts_pumptask.InsertComitSize:=0;

    dts_pumptask.ExceptionFileColumnDelimiter:='|';

    dts_pumptask.ExceptionFileRowDelimiter:=#13#10;

    dts_pumptask.AllowIdentityInserts:=False;

    dts_pumptask.FirstRow:=0;

    dts_pumptask.LastRow:=0;

    dts_pumptask.FastLoadOptions:=2;

    dts_pumptask.ExceptionFileOptions:=1;

    dts_pumptask.DataPumpOptions:=0;

    dts_step.Name:='LowerCaseStep';

    dts_step.TaskName:=dts_pumptask.Name;

    oCustomTask2_Trans_S1(dts_pumptask);

    opackage.Tasks.Add(dts_taskk);

    opackage.Steps.Add(dts_step);

    opackage.Execute;

    opackage.UnInitialize;

end;

相关文章
|
SQL 程序员 数据库连接
118_《Delphi2010语法手册》
《Delphi2010语法手册》 Delphi 教程 系列书籍 (118) 《Delphi2010语法手册》 网友(邦)整理 EMail: shuaihj@163.com 下载地址: 下载
1106 0
|
数据库 Windows
113_《DELPHI接口技术开发实例解析》
《DELPHI接口技术开发实例解析》 Delphi 教程 系列书籍 (113) 《DELPHI接口技术开发实例解析》 网友(邦)整理 EMail: shuaihj@163.
1213 0
|
数据库连接 应用服务中间件 API
070_《Delphi7程序设计技巧与实例》
《Delphi7程序设计技巧与实例》 Delphi 教程 系列书籍 (070) 《Delphi7程序设计技巧与实例》 网友(邦)整理 EMail: shuaihj@163.
1617 0
|
程序员 数据库
022_《Delphi模式编程》
《Delphi模式编程》 Delphi 教程 系列书籍 (022) 《Delphi模式编程》 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Pdf   作者: 刘艺 丛书名: Borland/Inprise核心技术丛书 出版社:机械工业出版社 ISBN:7111149491 上架时间:2004-9-11 出版日期:2004 年9月 开本:16开 页码:509 版次:1-1 内容简介 《delphi模式编程》是一本delphi程序员的模式入门和实践读物。
1383 0
|
SQL 关系型数据库 程序员
037_《Delphi7高效数据库程序设计》
《Delphi7高效数据库程序设计》 Delphi 教程 系列书籍 (037) 《Delphi7高效数据库程序设计》 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Pdf 附书源码 作者: 李维 丛书名: 李维作品系列 出版社:机械工业出版社 ISBN:7111112261 上架时间:2002-12-24 出版日期:2003 年1月 开本:16开 页码:412 版次:1-1 内容简介 dbExpress是Borland公司下一代数据访问技术。
1596 0
|
测试技术 数据库 数据库管理
083_《Delphi数据库开发经典实例精解》
《Delphi数据库开发经典实例精解》 Delphi 教程 系列书籍 (083) 《Delphi数据库开发经典实例精解》 网友(邦)整理 EMail: shuaihj@163.
1632 0
|
BI 数据库 容器
065_《Delphi7组件编程参考手册》
《Delphi7组件编程参考手册》 Delphi 教程 系列书籍 (065) 《Delphi7组件编程参考手册》 网友(邦)整理 EMail: shuaihj@163.
1267 0