社区
MS-SQL Server
帖子详情
创建作业的问题(十分古怪),泣求答案,大把散分
silkworm
2005-08-10 11:31:22
我要用delphi创建一个作业用来定时备份数据库,sql语句写好了,但是delphi每次执行都会提示“至少一个参数没有被指定值”和“不正常的定义参数对象,提供了不一致或不完整的信息”,但是我把每一次要执行的sql语句拷贝到查询分析器里执行都没有任何问题,不知道什么缘故,请大家不吝赐教。
...全文
124
7
打赏
收藏
创建作业的问题(十分古怪),泣求答案,大把散分
我要用delphi创建一个作业用来定时备份数据库,sql语句写好了,但是delphi每次执行都会提示“至少一个参数没有被指定值”和“不正常的定义参数对象,提供了不一致或不完整的信息”,但是我把每一次要执行的sql语句拷贝到查询分析器里执行都没有任何问题,不知道什么缘故,请大家不吝赐教。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zjcxc
元老
2005-08-10
打赏
举报
回复
测试楼主的sql代码没有问题.
检查一下:
1. CommandText 的结果是否被截断
2. 简化脚本,分步调试
创建作业的脚本是由几段组成的,先执行一段,如果无错误,再把后面的加上去,直到找出是那段有问题.
silkworm
2005-08-10
打赏
举报
回复
代码比较长,不好意思
silkworm
2005-08-10
打赏
举报
回复
adocmd_backup.CommandText := // 2005-8-10/9:46 上生成的脚本
// 由: sa
// 服务器: 192.168.10.2
' BEGIN TRANSACTION'+
' DECLARE @JobID BINARY(16)'+
' DECLARE @ReturnCode INT'+
' SELECT @ReturnCode = 0'+
' IF (SELECT COUNT(*) FROM msdb.dbo.syscategories'+
' WHERE name = N''[Uncategorized (Local)]'') < 1'+
' EXECUTE msdb.dbo.sp_add_category'+
' @name = N''[Uncategorized (Local)]'''+
// 删除同名的警报(如果有的话)。
' SELECT @JobID = job_id'+
' FROM msdb.dbo.sysjobs'+
' WHERE (name = N''xwl_backupplan'')'+
' IF (@JobID IS NOT NULL)'+
' BEGIN'+
// 检查此作业是否为多重服务器作业
' IF (EXISTS (SELECT *'+
' FROM msdb.dbo.sysjobservers'+
' WHERE (job_id = @JobID) AND (server_id <> 0)))'+
' BEGIN'+
// 已经存在,因而终止脚本
' RAISERROR (N''无法导入作业“xwl_backupplan”,'+
' 因为已经有相同名称的多重服务器作业。'', 16, 1)'+
' GOTO QuitWithRollback'+
' END'+
' ELSE'+
// 删除[本地]作业
' EXECUTE msdb.dbo.sp_delete_job @job_name = N''xwl_backupplan'''+
' SELECT @JobID = NULL'+
' END'+
' BEGIN'+
// 添加作业
' EXECUTE @ReturnCode = msdb.dbo.sp_add_job'+
' @job_id = @JobID OUTPUT ,'+
' @job_name = N''xwl_backupplan'','+
' @owner_login_name = N''sa'','+
' @description = N''没有可用的描述。'','+
' @category_name = N''[Uncategorized (Local)]'','+
' @enabled = 1, @notify_level_email = 0,'+
' @notify_level_page = 0,'+
' @notify_level_netsend = 0,'+
' @notify_level_eventlog = 2,'+
' @delete_level= 0'+
' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback'+
// 添加作业步骤
' EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID,'+
' @step_id = 1, @step_name = N''第 1 步'','+
' @command = N''USE master'+
' EXEC sp_addumpdevice ''''disk'''', ''''JSP_BACKUPPLAN'''','+
' '''''+edit1.Text+combobox2.Text+'_20050810.dat'''''+
' BACKUP DATABASE JSP TO JSP_BACKUPPLAN'','+
' @database_name = N''jsp'', @server = N'''','+
' @database_user_name = N'''', @subsystem = N''TSQL'','+
' @cmdexec_success_code = 0, @flags = 0, @retry_attempts = 0,'+
' @retry_interval = 0, @output_file_name = N'''','+
' @on_success_step_id = 0, @on_success_action = 1,'+
' @on_fail_step_id = 0, @on_fail_action = 2'+
' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback'+
' EXECUTE @ReturnCode = msdb.dbo.sp_update_job @job_id = @JobID, @start_step_id = 1'+
' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback'+
// 添加作业调度
' EXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID,'+
' @name = N''第 1 调度'', @enabled = 1,'+
' @freq_type = 4,@active_start_date = 20050808,'+
' @active_start_time = 0,@freq_interval = 1,'+
' @freq_subday_type = 1,@freq_subday_interval = 0,'+
' @freq_relative_interval = 0,@freq_recurrence_factor = 0,'+
' @active_end_date = 99991231, @active_end_time = 235959'+
' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback'+
// 添加目标服务器
' EXECUTE @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @JobID, @server_name = N''(local)'''+
' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback'+
' END'+
' COMMIT TRANSACTION'+
' GOTO EndSave'+
' QuitWithRollback:'+
' IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION'+
' EndSave:';
//test
Filename := ExtractFilePath(Application.Exename)+'path.ini';
pathini := Tinifile.Create(filename);
pathini.WriteString('test','test',adocmd_backup.CommandText);
pathini.Destroy;
//test
adocmd_backup.Connection := adoconnection;
try
adocmd_backup.Execute;
except
on e:exception do showmessage(e.Message);
end;
soaringsouth
2005-08-10
打赏
举报
回复
没有代码怎么给你看 啊
klan
2005-08-10
打赏
举报
回复
贴出代码来
silkworm
2005-08-10
打赏
举报
回复
找到问题了,在delphi中不能执行sql语句中的begintrans语句,goto好像也有问题,我把他们都屏蔽掉了,统统放到异常中处理,调试通过,我把代码贴出来,各位看看有没有意见批评指正
adoconnection.BeginTrans;
adocmd_backup.CommandText := // 2005-8-10/9:46 上生成的脚本
// 由: sa
// 服务器: 192.168.10.2
//' BEGIN TRANSACTION'+
' DECLARE @JobID BINARY(16)'+
' DECLARE @ReturnCode INT'+
' SELECT @ReturnCode = 0'+
' IF (SELECT COUNT(*) FROM msdb.dbo.syscategories'+
' WHERE name = N''[Uncategorized (Local)]'') < 1'+
' EXECUTE msdb.dbo.sp_add_category'+
' @name = N''[Uncategorized (Local)]'''+
// 删除同名的警报(如果有的话)。
' SELECT @JobID = job_id'+
' FROM msdb.dbo.sysjobs'+
' WHERE (name = N''xwl_backupplan'')'+
' IF (@JobID IS NOT NULL)'+
' BEGIN'+
// 检查此作业是否为多重服务器作业
' IF (EXISTS (SELECT *'+
' FROM msdb.dbo.sysjobservers'+
' WHERE (job_id = @JobID) AND (server_id <> 0)))'+
' BEGIN'+
// 已经存在,因而终止脚本
' RAISERROR (N''无法导入作业“xwl_backupplan”,'+
' 因为已经有相同名称的多重服务器作业。'', 16, 1)'+
//' GOTO QuitWithRollback'+
' END'+
' ELSE'+
// 删除[本地]作业
' EXECUTE msdb.dbo.sp_delete_job @job_name = N''xwl_backupplan'''+
' SELECT @JobID = NULL'+
' END'+
' BEGIN'+
// 添加作业
' EXECUTE @ReturnCode = msdb.dbo.sp_add_job'+
' @job_id = @JobID OUTPUT ,'+
' @job_name = N''xwl_backupplan'','+
' @owner_login_name = N''sa'','+
' @description = N''没有可用的描述。'','+
' @category_name = N''[Uncategorized (Local)]'','+
' @enabled = 1, @notify_level_email = 0,'+
' @notify_level_page = 0,'+
' @notify_level_netsend = 0,'+
' @notify_level_eventlog = 2,'+
' @delete_level= 0'+
//' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback'+
// 添加作业步骤
' EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID,'+
' @step_id = 1, @step_name = N''第 1 步'','+
' @command = N''USE master'+
' EXEC sp_addumpdevice ''''disk'''', ''''JSP_BACKUPPLAN'''','+
' '''''+edit1.Text+combobox2.Text+'_20050810.dat'''''+
' BACKUP DATABASE JSP TO JSP_BACKUPPLAN'','+
' @database_name = N''jsp'', @server = N'''','+
' @database_user_name = N'''', @subsystem = N''TSQL'','+
' @cmdexec_success_code = 0, @flags = 0, @retry_attempts = 0,'+
' @retry_interval = 0, @output_file_name = N'''','+
' @on_success_step_id = 0, @on_success_action = 1,'+
' @on_fail_step_id = 0, @on_fail_action = 2'+
//' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback'+
' EXECUTE @ReturnCode = msdb.dbo.sp_update_job @job_id = @JobID, @start_step_id = 1'+
//' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback'+
// 添加作业调度
' EXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID,'+
' @name = N''第 1 调度'', @enabled = 1,'+
' @freq_type = 4,@active_start_date = 20050808,'+
' @active_start_time = 0,@freq_interval = 1,'+
' @freq_subday_type = 1,@freq_subday_interval = 0,'+
' @freq_relative_interval = 0,@freq_recurrence_factor = 0,'+
' @active_end_date = 99991231, @active_end_time = 235959'+
//' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback'+
// 添加目标服务器
' EXECUTE @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @JobID, @server_name = N''(local)'''+
//' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback'+
' END';//+
{' COMMIT TRANSACTION'+
' GOTO EndSave'+
' QuitWithRollback:'+
' IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION'+
' EndSave:';}
//test
Filename := ExtractFilePath(Application.Exename)+'path.ini';
pathini := Tinifile.Create(filename);
pathini.WriteString('test','test',adocmd_backup.CommandText);
pathini.Destroy;
//test
adocmd_backup.Connection := adoconnection;
try
adocmd_backup.Execute;
adoconnection.CommitTrans;
statusbar2.Panels[2].Text := '备份计划已经成功建立!';
except
on e:exception do
begin
adoconnection.RollbackTrans;
showmessage('错误:'+e.Message);
statusbar2.Panels[2].Text := '错误:'+e.Message;
end;
end;
klan
2005-08-10
打赏
举报
回复
分布调试以上的sql语句;再次确认一下CommandText的内容
稀奇
古怪
的
问题
汇总
开篇:一般稀奇
古怪
问题
,大部分是jar包冲突 (比如boot整合hbase);工具 maven-shade-plugin提供了两大基本功能: 将依赖的jar包打包到当前jar包(常规打包是不会将所依赖jar包打进来的); 对依赖的jar包进行重命名(用于类的隔离); https://blog.csdn.net/yangguosb/article/details/80619481 Cann...
15道刁钻
古怪
的谷歌面试题及
答案
第一题:多少只高尔夫球才能填满一辆校车?(职位:产品经理) 解析:通过这道题,谷歌希望测试出求职者是否有能力判断出解决
问题
的关键。 网友的
答案
:我想,一辆标准大小的校车约有8英尺宽、6英尺高、20英尺长——我能知道这些数字完全是因为我曾经无数次被堵在校车后面。 据此估算,一辆校车的容积约为960立方英尺,也就是160万立方英寸。一个高尔夫球的半径约为0.85英寸,我认为一个高尔夫
大学计算机
作业
互评评语简短,同学
作业
互评评语
同学
作业
互评评语评语是包含一些鼓励的话语,以下是小编收集的同学
作业
互评评语,欢迎查看!1、你稳重大方,为人坦诚;班级管理中显露出你非凡的潜力和艺术,是同学和老师信任的班长;你热爱学习,勤于思考,学习主动用心,一向处以优秀。在今后的学习中,只要你继续持续良好的心态和坚持不懈的精神,必须会取得更大的成功。2、你性格沉静,常常不拘小节,待人接物却稳重大方。平日里言语并不多,但我知道你心志高远,骨子里一种...
dreamweaver网页设计
作业
制作 学生个人网页单页 WEB静态网页
作业
模板 大学生个人主页博客网页代码 dw个人网页
作业
成品简单页面
1 网页简介:此作品为学生个人主页网页设计题材,HTML+CSS 布局制作,web前端期末大
作业
,大学生网页设计
作业
源码,这是一个不错的网页制作,画面精明,代码为简单学生水平, 非常适合初学者学习使用。2.网页编辑:网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad++ 等任意html编辑软件进行运行及修改编辑等操作)。3.知识应用:技术方面主要应用了网页知识中的: Div+CSS、鼠标滑
稀奇
古怪
的符号大全
؟', 'ؠ', 'ء', 'آ', 'أ', 'ؤ', 'إ', 'ئ', 'ا', 'ب', 'ة', 'ت', 'ث', 'ج', 'ح', 'خ', 'د', 'ذ', 'ر', 'ز', 'س', 'ش', 'ص', 'ض', 'ط', 'ظ', 'ع', 'غ', 'ػ', 'ؼ', 'ؽ', 'ؾ', 'ؿ', 'ـ', 'ف', 'ق', 'ك', 'ل', 'م', 'ن', '...
MS-SQL Server
34,871
社区成员
254,637
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章