[code=MSIL]master..xp_cmdshell 'copy "C:\Program Files\data\ERP_Data.MDF" "C:\Program Files\data\ERP_2_Data.mdf"'[/code]
上面sql 语句在DELPHI里运用:
procedure TForm1.Button1Click(Sender: TObject);
var
  s: string;
begin
  s:= '"C:\Program Files\data\ERP_Data.MDF" "C:\Program Files\data\ERP_2_Data.mdf"';
  s:= 'master..xp_cmdshell ''copy '+s+'''';
  with ADOQuery1 do
  begin
    close;
    sql.Clear;
    sql.Add(s);
    execsql;
  end;
end;
我写的是上面的语句,有错误,

解决方案 »

  1.   

    关于"在delphi与SQL SERVER 之间的处理
      

  2.   

    直接
    s:='master..xp_cmdshell '+QuotedStr('copy "C:\Program Files\data\ERP_Data.MDF" "C:\Program Files\data\ERP_2_Data.mdf"')
      

  3.   


    procedure TForm1.Button1Click(Sender: TObject);
    var
      s: string;
    begin
      s:= '''''C:\Program Files\data\ERP_Data.MDF'''' ''''C:\Program Files\data\ERP_2_Data.mdf''''';
      s:= 'master..xp_cmdshell ''copy '+s+'''';
      with ADOQuery1 do
      begin
        close;
        sql.Clear;
        sql.Add(s);
        execsql;
      end;
    end;上面的"该成四个单引号('''')时,程序没错,可SQL语句没有效果(COPY 功能没有实现)
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      s: string;
    begin
      //s:= '''''C:\Program Files\data\ERP_Data.MDF'''' ''''C:\Program Files\data\ERP_2_Data.mdf''''';
      //s:= 'master..xp_cmdshell ''copy '+s+'''';
      s:='master..xp_cmdshell '+QuotedStr('copy "C:\Program Files\data\ERP_Data.MDF" "C:\Program Files\data\ERP_2_Data.mdf"');
      with ADOQuery1 do
      begin
        close;
        sql.Clear;
        sql.Add(s);
        execsql;
      end;
    end;
    还是不行,样的错误
      

  5.   

    你SQL语句的问题吧,
    SQL.text:='master..xp_cmdshell '+QuotedStr('copy C:\Program Files\data\ERP_Data.MDF C:\Program Files\data\ERP_2_Data.mdf');//试试
      

  6.   


    SQL.text:='master..xp_cmdshell '+QuotedStr('copy "C:\Program Files\data\ERP_Data.MDF" "C:\Program Files\data\ERP_2_Data.mdf"');
    路径有空格要加双引号;
      

  7.   

    "C:\DATA\ERP_Data.MDF" "C:\DATA\ERP_2_Data.mdf"
    这样的SQL(" shift+'的双引号)delphi里运行就出错
      

  8.   

    "C:\DATA\ERP_Data.MDF" "C:\DATA\ERP_2_Data.mdf" 
    这样的SQL(" shift+'的双引号)delphi里运行就出错
      

  9.   

    写个存储过程,然后用delphi去调用存储过程执行.
      

  10.   

    程序没错,可SQL语句没有效果(COPY 功能没有实现)——————————————————————————楼主Copy的好像是数据库文件,该文件如果正在使用,是不允许复制的,必须先分离或者脱机才能复制
      

  11.   

    试了一下是因为“:”符号造成,你这样写
    s:='master..xp_cmdshell '+QuotedStr('copy "C::\Program Files\data\ERP_Data.MDF" "C::\Program Files\data\ERP_2_Data.mdf"');
    已测试通过