[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;
我写的是上面的语句,有错误,
上面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;
我写的是上面的语句,有错误,
s:='master..xp_cmdshell '+QuotedStr('copy "C:\Program Files\data\ERP_Data.MDF" "C:\Program Files\data\ERP_2_Data.mdf"')
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 功能没有实现)
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;
还是不行,样的错误
SQL.text:='master..xp_cmdshell '+QuotedStr('copy C:\Program Files\data\ERP_Data.MDF C:\Program Files\data\ERP_2_Data.mdf');//试试
SQL.text:='master..xp_cmdshell '+QuotedStr('copy "C:\Program Files\data\ERP_Data.MDF" "C:\Program Files\data\ERP_2_Data.mdf"');
路径有空格要加双引号;
这样的SQL(" shift+'的双引号)delphi里运行就出错
这样的SQL(" shift+'的双引号)delphi里运行就出错
s:='master..xp_cmdshell '+QuotedStr('copy "C::\Program Files\data\ERP_Data.MDF" "C::\Program Files\data\ERP_2_Data.mdf"');
已测试通过