可以用DTS导入,不一定要自己写代码的.:)

解决方案 »

  1.   

    我希望能编程实现,因为paradox数据表的内容不是固定不变的,一段时间就需要转换为SQL SERVER 2000的数据表,用DTS导入不方便。
      

  2.   

    先做好DTS包,然后用xp_cmdShell 'dtsrun .....'执行.  若要执行保存为 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
      

  3.   

    可是我是用ADO连接SQL SERVER的,在ADO中没有BATCHMOVE。
      

  4.   

    用SQL SERVER 2000中的DTS工具创建DTS包后如何实现定时更新?例如:在每天上午的8:00进行更新。
      

  5.   

    用SQL SERVER 2000中的DTS工具创建DTS包后如何实现定时更新?例如:在每天上午的8:00进行更新。把它加入job里就行,使用job向导。
      

  6.   

    1 将你的ADO换成BDE.2 用BCP
      

  7.   

    1、做好DTS包
    2、Delphi调用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;