读书人

Delphi怎么调用DTS包

发布时间: 2012-04-25 19:32:32 作者: rapoo

Delphi如何调用DTS包
我在SQLServer里,已经设计好了DTS包,在Delphi里如何调用它,就如在FORM页里加一个按钮,单击按钮就执行DTS包,成功返回成功,失败返回失败.我在网上查了好些例子都好复杂,不是看不懂,就是不实用.高手们,给写个简单例子吧

[解决办法]
先 用import type library 把 dtspkg.dll和dtspump.dll 安装好。



然后加入下面这个函数:

Delphi(Pascal) code
function   execdts(strdts_name:   string):   boolean;   var         n:   variant;         oconnection:   variant;         ostep,otask,ocustomtask,mopackage:   variant;   begin         mopackage   :=   createoleobject(dts.package2);         oconnection   :=   mopackage.connections.new(sqloledb);         ostep   :=   mopackage.steps.new;         otask   :=   mopackage.tasks.new(dtsexecutepackagetask);         ocustomtask   :=   otask.customtask;         mopackage.failonerror   :=   true;             ocustomtask.packagepassword   :=   user;         ocustomtask.filename   :=   strdts_name;         ocustomtask.name   :=   execpkgtask;             ostep.taskname   :=   ocustomtask.name;         ostep.name   :=   execpkgstep;         ostep.executeinmainthread   :=   true;             mopackage.steps.add(ostep);         mopackage.tasks.add(otask);         try             mopackage.execute;         except             ocustomtask   :=   n;             otask   :=   n;             ostep   :=   n;             mopackage.uninitialize;             execdts   :=   false;             exit;         end;             execdts   :=   true;         ocustomtask   :=   n;         otask   :=   n;         ostep   :=   n;         mopackage.uninitialize;   end;
[解决办法]
给你一个一般性调用的例子,可以传参数的,共传入了6个参数。测试可以通过。
希望对你有帮助。

procedure TForm1.Button1Click(Sender: TObject);
var
aSql: String;
begin
with self.ADOQuery1 do
begin
Asql := 'exec master.dbo.xp_cmdshell ''dtsrun /S /E /N"dtsTest" /A"DestAddress":8="%s" '
+ '/A"DestUser":8="%s" /A"DestPwd":8="%s" '
+ '/A"SourceAddress":8="%s" /A"SourceUser":8="%s" /A"SourcePwd":8="%s"''';
aSql := Format(aSql, [
'192.168.1.100',
'sa',
'123',
'192.168.1.200',
'sa',
'456'
]);

close;
sql.Clear;
sql.Add(asql);
Execsql;
close;
end;
end;

读书人网 >.NET

热点推荐