用下面的语句
EXEC master..xp_cmdshell 'dtsrun .....'如果报找不到dtsrun
在你的操作系统中查找dtsrun.exe。找到后,复制这个文件的路径,再打开你的JOB的STEP,把这个路径加到
DTSRUN....的命令前面,
dtsrun /F"e:\web\wwwroot\sunhing\sqlserver\toolsdepart.dts" /Ntoolsdepart
dtsrun /F"e:\web\wwwroot\sunhing\sqlserver\toolsinfor.dts" /Ntoolsinfor若要执行保存为 COM 结构化存储文件的 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
-

解决方案 »

  1.   

    直接用ADOCommand执行如下SQL语句即可
    EXEC master..xp_cmdshell 'dtsrun .....'
      

  2.   

    调用dts的源代码:
    Function ExecDTS(strDTS_Name: string): boolean;
    var
      n: Variant;
      oConnection: Variant;
      oStep,oTask,oCustomTask: 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;