unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DTS_TLB, OleServer,comobj;type
TForm1 = class(TForm)
Package1: TPackage;
Package21: TPackage2;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
function main:boolean;
procedure task_1(gopackage:variant);
procedure ocustom_1(ocustomtask1:variant);
public
{ Public declarations }
end;var
Form1: TForm1;implementation
//uses DTSCustTasks_TLB,DTSPump_TLB;
{$R *.dfm}
function Tform1.main :boolean;
var
gopackageold:_package;
gopackage:_package2;
ostep:step;
oconnection:connection;
oprecConstraint:PrecedenceConstraint;
begin
gopackageold:=package(createoleobject('DTS.package'));
gopackage:=package2(createoleobject('DTS.package2'));
gopackage:=package2(gopackageold);
gopackage.Name:='11';
gopackage.writecompletionstatustoNTEventLog:=false;
gopackage.failonerror:=true;
gopackage.packagepriorityclass:=2;
gopackage.maxconcurrentsteps:=4;
gopackage.lineageoptions:=0;
gopackage.usetransaction:=true;
gopackage.transactionIsolationLevel:=4096;
gopackage.autocommittransaction:=true;
gopackage.repositorymetadataoptions:=0;
gopackage.useOLEDBServiceComponents:=true;
gopackage.LogToSQLServer:=false;
gopackage.LogServerFlags:=0;
gopackage.FailPackageOnLogFailure:=false;
gopackage.ExplicitGlobalVariables:=false;
gopackage.PackageType:=0; //源数据
oconnection:=gopackage.Connections.New('SQLOLEDB');
oconnection.ConnectionProperties.Item('Persist Security Info').Value:=true;
oconnection.ConnectionProperties.Item('User ID').Value:='sa';
oconnection.ConnectionProperties.Item('Initial Catalog').Value:='college';
oconnection.ConnectionProperties.Item('Data Source').Value:='(local)';
oconnection.ConnectionProperties.Item('Application Name').Value:='DTS 设计器';
oconnection.Name:='college';
oconnection.ID:=2;
oconnection.Reusable:=true;
oconnection.ConnectImmediate:=false;
oconnection.DataSource:='(local)';
oconnection.ConnectionTimeout:=60;
oconnection.Catalog:='college';
oconnection.UseTrustedConnection:=false;
oconnection.UseDSL:=false;
gopackage.Connections.Add(oconnection);
oconnection:=nil; //目的地
oconnection:=gopackage.Connections.New('SQLOLEDB');
{oconnection.ConnectionProperties.Item('persist security info').Value:=true;
oconnection.ConnectionProperties.Item('user id').Value:='sa';
oconnection.ConnectionProperties.Item('initial catalog').Value:='budget';
oconnection.ConnectionProperties.Item('data source').Value:='(local)';
oconnection.ConnectionProperties.Item('application name').Value:='DTS 设计器';}
oconnection.Name:='budget';
oconnection.ID:=1;
oconnection.Reusable:=true;
oconnection.ConnectImmediate:=false;
oconnection.DataSource:='(local)';
oconnection.ConnectionTimeout:=60;
oconnection.Catalog:='budget';
oconnection.UseTrustedConnection:=false;
oconnection.UseDSL:=false;
gopackage.Connections.Add(oconnection);
oconnection:=nil; ostep:=gopackage.Steps.New;
ostep.Name:='DTSStep_DTSDataPumpTask_1';
ostep.Description:='字段的转换和合并列';
ostep.ExecutionStatus:=1;
ostep.TaskName:='DTSTask_DTSDataPumpTask_1';
ostep.CommitSuccess:=false;
ostep.RollbackFailure:=false;
ostep.ScriptLanguage:='VBScript';
ostep.AddGlobalVariables:=true;
ostep.RelativePriority:=3;
ostep.CloseConnection:=false;
ostep.ExecuteInMainThread:=false;
ostep.IsPackageDSORowset:=false;
ostep.JoinTransactionIfPresent:=false;
ostep.DisableStep:=false;
//ostep.FailPackageOnError :=false;
gopackage.steps.Add(ostep);
ostep:=nil;
task_1(gopackage);
gopackage.Execute; //这里报错,执行不了包
gopackage.UnInitialize;
gopackage:=nil;
gopackageold:=nil;
result:=true;
end;procedure Tform1.task_1 (gopackage:variant);
var
otask,ocustomtask1:variant;
begin
otask:=gopackage.tasks.new('DTSDataPumpTask');
ocustomtask1:=otask.customtask; ocustomtask1.name:='DTSTask_DTSDataPumpTask_1';
ocustomtask1.description:='字段的转换和合并列';
ocustomtask1.sourceconnectionID:=2;
ocustomtask1.sourceobjectname:='[college].[dbo].[cou_info]';
ocustomtask1.destinationconnectionID:=3;
ocustomtask1.destinationobjectname:='[budget].[dbo].[cou_info]';
ocustomtask1.progressrowcount:=1000;
ocustomtask1.maximumerrorcount:=0;
ocustomtask1.fetchbuffersize:=1;
ocustomtask1.usefastload:=true;
ocustomtask1.insertcommitsize:=0;
ocustomtask1.exceptionfilecolumndelimiter:='|';
ocustomtask1.exceptionfilerowdelimiter:=#10#13;
ocustomtask1.allowIdentityInserts:=false;
ocustomtask1.firstrow:=0;
ocustomtask1.lastrow:=0;
ocustomtask1.fastloadoptions:=2;
ocustomtask1.exceptionfileoptions:=1;
ocustomtask1.datapumpoptions:=0; ocustom_1(ocustomtask1);
gopackage.tasks.add(otask);
ocustomtask1:=Unassigned;
otask:=Unassigned;
end;procedure Tform1.ocustom_1(ocustomtask1:variant);
var
oTransformation,oTransProps,oColumn:variant;
begin
oTransformation:=ocustomtask1.transformations.new('DTS.DataPumpTransformCopy');
oTransformation.name:='22';
oTransformation.transformflags:=63;
oTransformation.forcesourceblobsbuffered:=0;
oTransformation.forceblobsinmemory:=false;
oTransformation.inMemoryblobsize:=1048576;
oTransformation.transformPhases:=4; oColumn:=oTransformation.sourcecolumns.new('cou_no',1);
oColumn.name:='cou_no';
oColumn.ordinal:=1;
oColumn.flags:=24;
oColumn.size:=0;
oColumn.DataType:=3;
oColumn.precision:=0;
oColumn.numericscale:=0;
oColumn.nullable:=false; oTransformation.sourcecolumns.add(oColumn);
oColumn:=Unassigned; oColumn:=oTransformation.sourcecolumns.new('cou_name',2);
oColumn.name:='cou_name';
oColumn.ordinal:=2;
oColumn.flags:=24;
oColumn.size:=0;
oColumn.DataType:=3;
oColumn.precision:=0;
oColumn.numericscale:=0;
oColumn.nullable:=false; oTransformation.sourcecolumns.add(oColumn);
oColumn:=Unassigned; oColumn:=oTransformation.Destinationcolumns.new('cou_no',1);
oColumn.name:='cou_no';
oColumn.ordinal:=1;
oColumn.flags:=86;
oColumn.size:=0;
oColumn.datatype:=3;
oColumn.precision:=0;
oColumn.numericscale:=0;
ocolumn.nullable:=false; oTransformation.destinationcolumns.add(oColumn);
ocolumn:=Unassigned; oColumn:=oTransformation.Destinationcolumns.new('cou_name',2);
oColumn.name:='cou_name';
oColumn.ordinal:=2;
oColumn.flags:=86;
oColumn.size:=0;
oColumn.datatype:=3;
oColumn.precision:=0;
oColumn.numericscale:=0;
ocolumn.nullable:=false; oTransformation.destinationcolumns.add(oColumn);
ocolumn:=Unassigned; oTransProps:=oTransformation.TransformServerProperties;
oTransProps:=Unassigned; oCustomtask1.Transformations.add(oTransformation);
oTransformation:=Unassigned;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
main;
end;end.这是报的错: project project1.exe raised exception class EOleException with message'包由于步骤"DTSStep_DTSdataPumpTask_1"失败而失败.'.process stopped.use step or run to continue.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DTS_TLB, OleServer,comobj;type
TForm1 = class(TForm)
Package1: TPackage;
Package21: TPackage2;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
function main:boolean;
procedure task_1(gopackage:variant);
procedure ocustom_1(ocustomtask1:variant);
public
{ Public declarations }
end;var
Form1: TForm1;implementation
//uses DTSCustTasks_TLB,DTSPump_TLB;
{$R *.dfm}
function Tform1.main :boolean;
var
gopackageold:_package;
gopackage:_package2;
ostep:step;
oconnection:connection;
oprecConstraint:PrecedenceConstraint;
begin
gopackageold:=package(createoleobject('DTS.package'));
gopackage:=package2(createoleobject('DTS.package2'));
gopackage:=package2(gopackageold);
gopackage.Name:='11';
gopackage.writecompletionstatustoNTEventLog:=false;
gopackage.failonerror:=true;
gopackage.packagepriorityclass:=2;
gopackage.maxconcurrentsteps:=4;
gopackage.lineageoptions:=0;
gopackage.usetransaction:=true;
gopackage.transactionIsolationLevel:=4096;
gopackage.autocommittransaction:=true;
gopackage.repositorymetadataoptions:=0;
gopackage.useOLEDBServiceComponents:=true;
gopackage.LogToSQLServer:=false;
gopackage.LogServerFlags:=0;
gopackage.FailPackageOnLogFailure:=false;
gopackage.ExplicitGlobalVariables:=false;
gopackage.PackageType:=0; //源数据
oconnection:=gopackage.Connections.New('SQLOLEDB');
oconnection.ConnectionProperties.Item('Persist Security Info').Value:=true;
oconnection.ConnectionProperties.Item('User ID').Value:='sa';
oconnection.ConnectionProperties.Item('Initial Catalog').Value:='college';
oconnection.ConnectionProperties.Item('Data Source').Value:='(local)';
oconnection.ConnectionProperties.Item('Application Name').Value:='DTS 设计器';
oconnection.Name:='college';
oconnection.ID:=2;
oconnection.Reusable:=true;
oconnection.ConnectImmediate:=false;
oconnection.DataSource:='(local)';
oconnection.ConnectionTimeout:=60;
oconnection.Catalog:='college';
oconnection.UseTrustedConnection:=false;
oconnection.UseDSL:=false;
gopackage.Connections.Add(oconnection);
oconnection:=nil; //目的地
oconnection:=gopackage.Connections.New('SQLOLEDB');
{oconnection.ConnectionProperties.Item('persist security info').Value:=true;
oconnection.ConnectionProperties.Item('user id').Value:='sa';
oconnection.ConnectionProperties.Item('initial catalog').Value:='budget';
oconnection.ConnectionProperties.Item('data source').Value:='(local)';
oconnection.ConnectionProperties.Item('application name').Value:='DTS 设计器';}
oconnection.Name:='budget';
oconnection.ID:=1;
oconnection.Reusable:=true;
oconnection.ConnectImmediate:=false;
oconnection.DataSource:='(local)';
oconnection.ConnectionTimeout:=60;
oconnection.Catalog:='budget';
oconnection.UseTrustedConnection:=false;
oconnection.UseDSL:=false;
gopackage.Connections.Add(oconnection);
oconnection:=nil; ostep:=gopackage.Steps.New;
ostep.Name:='DTSStep_DTSDataPumpTask_1';
ostep.Description:='字段的转换和合并列';
ostep.ExecutionStatus:=1;
ostep.TaskName:='DTSTask_DTSDataPumpTask_1';
ostep.CommitSuccess:=false;
ostep.RollbackFailure:=false;
ostep.ScriptLanguage:='VBScript';
ostep.AddGlobalVariables:=true;
ostep.RelativePriority:=3;
ostep.CloseConnection:=false;
ostep.ExecuteInMainThread:=false;
ostep.IsPackageDSORowset:=false;
ostep.JoinTransactionIfPresent:=false;
ostep.DisableStep:=false;
//ostep.FailPackageOnError :=false;
gopackage.steps.Add(ostep);
ostep:=nil;
task_1(gopackage);
gopackage.Execute; //这里报错,执行不了包
gopackage.UnInitialize;
gopackage:=nil;
gopackageold:=nil;
result:=true;
end;procedure Tform1.task_1 (gopackage:variant);
var
otask,ocustomtask1:variant;
begin
otask:=gopackage.tasks.new('DTSDataPumpTask');
ocustomtask1:=otask.customtask; ocustomtask1.name:='DTSTask_DTSDataPumpTask_1';
ocustomtask1.description:='字段的转换和合并列';
ocustomtask1.sourceconnectionID:=2;
ocustomtask1.sourceobjectname:='[college].[dbo].[cou_info]';
ocustomtask1.destinationconnectionID:=3;
ocustomtask1.destinationobjectname:='[budget].[dbo].[cou_info]';
ocustomtask1.progressrowcount:=1000;
ocustomtask1.maximumerrorcount:=0;
ocustomtask1.fetchbuffersize:=1;
ocustomtask1.usefastload:=true;
ocustomtask1.insertcommitsize:=0;
ocustomtask1.exceptionfilecolumndelimiter:='|';
ocustomtask1.exceptionfilerowdelimiter:=#10#13;
ocustomtask1.allowIdentityInserts:=false;
ocustomtask1.firstrow:=0;
ocustomtask1.lastrow:=0;
ocustomtask1.fastloadoptions:=2;
ocustomtask1.exceptionfileoptions:=1;
ocustomtask1.datapumpoptions:=0; ocustom_1(ocustomtask1);
gopackage.tasks.add(otask);
ocustomtask1:=Unassigned;
otask:=Unassigned;
end;procedure Tform1.ocustom_1(ocustomtask1:variant);
var
oTransformation,oTransProps,oColumn:variant;
begin
oTransformation:=ocustomtask1.transformations.new('DTS.DataPumpTransformCopy');
oTransformation.name:='22';
oTransformation.transformflags:=63;
oTransformation.forcesourceblobsbuffered:=0;
oTransformation.forceblobsinmemory:=false;
oTransformation.inMemoryblobsize:=1048576;
oTransformation.transformPhases:=4; oColumn:=oTransformation.sourcecolumns.new('cou_no',1);
oColumn.name:='cou_no';
oColumn.ordinal:=1;
oColumn.flags:=24;
oColumn.size:=0;
oColumn.DataType:=3;
oColumn.precision:=0;
oColumn.numericscale:=0;
oColumn.nullable:=false; oTransformation.sourcecolumns.add(oColumn);
oColumn:=Unassigned; oColumn:=oTransformation.sourcecolumns.new('cou_name',2);
oColumn.name:='cou_name';
oColumn.ordinal:=2;
oColumn.flags:=24;
oColumn.size:=0;
oColumn.DataType:=3;
oColumn.precision:=0;
oColumn.numericscale:=0;
oColumn.nullable:=false; oTransformation.sourcecolumns.add(oColumn);
oColumn:=Unassigned; oColumn:=oTransformation.Destinationcolumns.new('cou_no',1);
oColumn.name:='cou_no';
oColumn.ordinal:=1;
oColumn.flags:=86;
oColumn.size:=0;
oColumn.datatype:=3;
oColumn.precision:=0;
oColumn.numericscale:=0;
ocolumn.nullable:=false; oTransformation.destinationcolumns.add(oColumn);
ocolumn:=Unassigned; oColumn:=oTransformation.Destinationcolumns.new('cou_name',2);
oColumn.name:='cou_name';
oColumn.ordinal:=2;
oColumn.flags:=86;
oColumn.size:=0;
oColumn.datatype:=3;
oColumn.precision:=0;
oColumn.numericscale:=0;
ocolumn.nullable:=false; oTransformation.destinationcolumns.add(oColumn);
ocolumn:=Unassigned; oTransProps:=oTransformation.TransformServerProperties;
oTransProps:=Unassigned; oCustomtask1.Transformations.add(oTransformation);
oTransformation:=Unassigned;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
main;
end;end.这是报的错: project project1.exe raised exception class EOleException with message'包由于步骤"DTSStep_DTSdataPumpTask_1"失败而失败.'.process stopped.use step or run to continue.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货