请教高手,在delphi中我怎么样调用DTS包来进行数据转换,也就是怎么样能够把DTS嵌入到程序中,请说的详细点?

解决方案 »

  1.   

    回复人: j_shen2000(j_shen2000) ( ) 信誉:100  2003-07-08 09:46:00  得分:0 
      
      其实很简单,
    首先IMPORT TYPE LIBARY中导入MICROSOFT DTSDATAPUMP和MICROSOFT DTSPACKAGE;
    然后去MSDN上看看VB的一些例子,转换过来就可以了。
     
     
      

  2.   

    var
    oConnection,oPackage,oStep,oTask,oCustomTask:olevariant;
    begin
    try
      oPackage:=Createoleobject('DTS.Package');
      oPackage.FailOnError := True;
      oConnection:=oPackage.Connections.New('SQLOLEDB');
      oStep :=oPackage.Steps.New;
      oTask := oPackage.Tasks.New('DTSBulkInsertTask');  oCustomTask := oTask.CustomTask;  oConnection.Catalog := 'test';
      oConnection.DataSource := 'wgf';
      oConnection.UserID := 'sa_01';
      oConnection.Password := '';
      oConnection.ID := 1;
      oConnection.Reusable := True;
      oConnection.ConnectImmediate := False;
      oConnection.UseTrustedConnection := False;  oPackage.Connections.Add(oConnection);
      oConnection:=NUll;  oStep.Name := 'GenericPkgStep';
      oStep.ExecuteInMainThread := True;
      oCustomTask.Name := 'GenericPkgTask';
      oCustomTask.DataFile := 'E:\book1.txt';
      oCustomTask.ConnectionID := 1 ;
      oCustomTask.DestinationTableName := 'wgf..Book1';
      oCustomTask.FieldTerminator :=#9;
      oCustomTask.RowTerminator := #13#10;  oStep.TaskName := oCustomTask.Name;  oPackage.Steps.Add(oStep);
      oPackage.Tasks.Add(oTask);
      oPackage.FailOnError := True;  oPackage.Execute;
    finally
      oConnection:=null;
      oCustomTask:=null;
      oTask:=null;
      oStep:=null;
      oPackage:=null;
    end;