当前位置:主页>销售管理软件> 列表

请教:用ADOQUERY调用sp_add_jobstep过 找家庭记账本软件

库存管理软件版1楼: 代码如下:总提示类型不正确。(integer,string)
try
ADOQ.Close;
ADOQ.SQL.Clear;
ADOQ.SQL.Add(''use msdb; Execute sp_add_jobstep ''
+'' :job_id,''
+'' :step_id,''
+'' :step_name,''
+'' :subsystem,''
+'' :on_success_action,''
+'' :on_fail_action,''
+'' :command,''
+'' :flags'');
ADOQ.parameters.ParamByName(''job_id'').Value:=job_id;
ADOQ.parameters.ParamByName(''step_id'').Value:=step_id;
ADOQ.parameters.ParamByName(''step_name'').value:=step_name;
ADOQ.parameters.ParamByName(''subsystem'').Value:=subsystem;
ADOQ.parameters.ParamByName(''on_success_action'').Value:=on_success_action;
ADOQ.parameters.ParamByName(''on_fail_action'').Value:=on_fail_action;
ADOQ.parameters.ParamByName(''command'').Value:=M_COMMEND;
ADOQ.parameters.ParamByName(''flags'').Value:=flags;

ADOQ.ExecSQL;
application.MessageBox(''a'',mb_ok+mb_iconwarning);
except
application.MessageBox(''b'',mb_ok+mb_iconwarning);
end;

2楼: 是nvarchar字段的改成asstring这样试试.
ADOQ.parameters.ParamByName(''step_name'').asstring:=step_name; 如家庭记账本软件

3楼: 不喜欢用parameters,喜欢组成SQL语句执行,1、用parameters在日期类型时出过错,2、SQL语句可以方便查看。

翻出了以前的代码:
Result :=''exec msdb..sp_add_jobstep @job_id =''''''+FJobID+'''''' , @step_id = 1, @cmdexec_success_code = 0, @on_success_action = 1, @on_success_step_id = 0, @on_fail_action = 2, @on_fail_step_id = 0, @retry_attempts = 0, @retry_interval = 0, @os_run_priority = 0, @flags = 0, @step_name = N''''''+FStepName+'''''' , @subsystem = N''''TSQL'''', @command = N''''+FCmdText+'''''';

没啥问题。

4楼: to benhacker :ADOQ.parameters.ParamByName 没有asstring属性

5楼: 呵..我也是猜的...我对数据库不熟.菜鸟来的.

6楼: to dirk:请帮忙看看:
我的FCmdText:EXECUTE master.dbo.xp_sqlmaint N''-PlanID 7C7C1797-ABBD-4B98-9E03-5FBC10AE1707 -VrfyBackup -BkUpMedia DISK -BkUpDB "C:" -BkExt "BAK"''
我跟踪Result,然后把它在查询分析器中执行,没问题,可是在delphi中执行,
得到的command:+FCmdText+
不知道错误在哪里

库存管理软件版7楼: to benhacker:您太客气了,多多交流,以后还要向你请教

8楼: Result:= ''exec msdb..sp_add_jobstep @job_id =''AC4D5BA5-4949-4BF6-9F2F-D9227211B3FD'' , @step_id = 1, @cmdexec_success_code = 0, @on_success_action = 1, @on_success_step_id = 0, @on_fail_action = 2, @on_fail_step_id = 0, @retry_attempts = 0, @retry_interval = 0, @os_run_priority = 0, @flags = 0, @step_name = N'' 1 '' , @subsystem = N''TSQL'', @command = N''EXECUTE master.dbo.xp_sqlmaint N''''-PlanID 05AD0703-2639-48B0-9E39-AA3127E0890E -VrfyBackup -BkUpMedia DISK -BkUpDB "C:" -BkExt "bak"''''''''
上面这个Result字符串在delphi里执行错误,确切的说,加上路径就出错(去掉‘:’就没问题),这是为什么?

9楼: 用ADOStoredProc搞定了,谢谢二位