with form1.ADOQuery2 do
begin
sql.Clear;
sql.Add('execute sp_add_jobstep :job_name,:step_name,:subsystem,:command');
parameters.ParamByName('job_name').Value:='001';
parameters.ParamByName('step_name').Value:='备份';
parameters.ParamByName('subsystem').Value:='TSQL';
parameters.ParamByName('command').Value:='BACKUP DATABASE Pubs TO DISK=''e:\back\pubs.bak''';
execsql;
end;
我运行时老是提示,当前应用程序中使用了错误的值类型,subsystem,command应该怎样赋值?
begin
sql.Clear;
sql.Add('execute sp_add_jobstep :job_name,:step_name,:subsystem,:command');
parameters.ParamByName('job_name').Value:='001';
parameters.ParamByName('step_name').Value:='备份';
parameters.ParamByName('subsystem').Value:='TSQL';
parameters.ParamByName('command').Value:='BACKUP DATABASE Pubs TO DISK=''e:\back\pubs.bak''';
execsql;
end;
我运行时老是提示,当前应用程序中使用了错误的值类型,subsystem,command应该怎样赋值?
begin
sql.Clear;
parameters.Clear;
sql.Add('execute sp_add_jobstep :job_name,:step_name,:subsystem,:command');
parameters.ParamByName('job_name').Value:='001';
parameters.ParamByName('step_name').Value:='备份';
parameters.ParamByName('subsystem').Value:='TSQL';
parameters.ParamByName('command').Value:='BACKUP DATABASE Pubs TO DISK=''e:\back\pubs.bak''';
execsql;
end;
如果不采用参数的方式有问题吗?
with form1.ADOQuery2 do
begin
sql.Clear;
sql.Add('execute sp_add_job :job_name,:enabled');
parameters.ParamByName('job_name').Value:='001';
parameters.ParamByName('enabled').Value:=1;
execsql;
end;
这个代码都能运行,但将上面的步骤添加到作业中时就出错
parameters.ParamByName('@job_name').Value:='001';
parameters.ParamByName('@step_name').Value:='备份';
parameters.ParamByName('@subsystem').Value:='TSQL';
parameters.ParamByName('@command').Value:='BACKUP DATABASE Pubs TO
sql.add('exec sp_add_jobstep '+quotedstr('001')+','+quotedstr('备份')+','+quotedstr('TSQL')+','+quotedstr('BACKUP DATABASE Pubs TO DISK=''e:\back\pubs.bak'''));
sql.add('exec sp_add_jobstep '+quotedstr('001')+','+quotedstr('备份')+','+quotedstr('TSQL')+','+quotedstr('BACKUP DATABASE Pubs TO DISK=''e:\back\pubs.bak'''));
参数对应的位置就不对了