中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: errorlevel问题 上一主题 | 下一主题
zyz0304360
中级用户




积分 257
发帖 123
注册 2008-1-5
来自 烟台
状态 离线
『楼 主』:  errorlevel问题

echo ③、Import Data… > > "Import_FeeMst.log" echo bcp %sqlDb%..%sqlTable1% in %sqlTable1%.DAT -n -q -S%sqlSv% -U%sqlUser% -P%sqlPwd% -b1000000 > > "Import_FeeMst.log" bcp %sqlDb%..%sqlTable1% in %sqlTable1%.DAT -n -q -S%sqlSv% -U%sqlUser% -P%sqlPwd% -b1000000 > > "Import_FeeMst.log" if errorlevel 1 ( set errproc=③、Import Data set errsite=「 Import %sqlDb%..%sqlTable1% 」 goto :_Error ) echo bcp %sqlDb%..%sqlTable1% in has succeed> > "Import_FeeMst.log" 如果BCP插入主键重复,报错,那么ERRORLEVEL应该是多少?


2008-1-6 04:56
查看资料  发短消息 网志  OICQ (625621812)  编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 2 楼』:  

echo %errorlevel%




2008-1-6 15:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zyz0304360
中级用户




积分 257
发帖 123
注册 2008-1-5
来自 烟台
状态 离线
『第 3 楼』:  

我用你的方法查了一下, 在主键重复,插入错误的情况下 errorlevel 居然是0 明明已经失败了, errorlevel 怎么还是0呢? 本人初学,请各位高手帮忙


2008-1-7 09:42
查看资料  发短消息 网志  OICQ (625621812)  编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 4 楼』:  

你1楼的不是CMD批处理吧 bcp又是什么?




2008-1-7 11:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zyz0304360
中级用户




积分 257
发帖 123
注册 2008-1-5
来自 烟台
状态 离线
『第 5 楼』:  

BCP就是向数据库中导入数据的一种工具




路 是自己选的 学习 是为了具备解决问题的能力
2008-1-7 13:07
查看资料  发短消息 网志  OICQ (625621812)  编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 6 楼』:  

echo ③、Import Data… > > "Import_FeeMst.log" 如果是XP CMD这个语法是错误的




2008-1-7 14:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 7 楼』:  

errorlevel一般是命令行程序执行某个指令后的返回值,bcp不一定遵循这个标准,对于它来说,可能只要程序正常执行了就返回0。




偶只喜欢回答那些标题和描述都很清晰的帖子! 如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2008-1-7 16:59
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
zyz0304360
中级用户




积分 257
发帖 123
注册 2008-1-5
来自 烟台
状态 离线
『第 8 楼』:  

7 楼说的十分有理 现有一棘手问题 在批处理中(.bat) 写了一个BCP IN 如果导入数据时主键重复 errorlevel 依然为0 如果BCP中加了 -e 参数,也不会生成errfile文件。 例: @echo off set date=%date% set fdate=%date:/=% set folder=D:\ set folder_bk=D:\test\ date /T >>test.log time /T >>test.log echo begin in ...... bcp "master.dbo.table1" in "table1.dat" -S. -Usa -P -n -E -e%folder_bk%%fdate%errfile.dat || goto :_error echo errorlevel: %errorlevel% if errorlevel 1 ( set errproc=Data IN set errsite=「table1 IN」 goto :_Error ) echo in succeeded!>>test.log pause copy test.log %folder_bk%%fdate%%time:~0,2%%time:~3,2%test.log goto :end :error time /T >>test.log echo here is an error >>test.log goto end :end time /T >>test.log echo ___________________END_______________>>test.log 在BCP IN主键重复报错的情况下 1.errorlevel依然是0(和BCP IN执行成功时一样) 2.|| goto :_error 没有执行(难道是BCP报错,但DOS不认为是错,反正是数据库和DOS没有直接关系,但是BCP就是批处理命令啊,太郁闷了) 3.BCP IN 中有 -e 参数,但主键重复时,不会生成errfile文件 请各位高手指点一下 怎么写,才能让BCP IN主键重复报错后,跳转到:error 谢谢大家




路 是自己选的 学习 是为了具备解决问题的能力
2008-1-7 20:46
查看资料  发短消息 网志  OICQ (625621812)  编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 9 楼』:  

bcp在导入数据时是否有屏幕输出(或者有相关参数来控制),如果有,可以将屏幕输出转向到一个文件中,然后再在该文件中查找是否有对应的错误字符串。




偶只喜欢回答那些标题和描述都很清晰的帖子! 如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2008-1-8 08:39
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
zyz0304360
中级用户




积分 257
发帖 123
注册 2008-1-5
来自 烟台
状态 离线
『第 10 楼』:  

嗯,有 在 test.log 里有 “SQLState = 23000, NativeError = 2627 Error = 。。。。。。 SQLState = 01000, NativeError = 3621 Warning = 。。。。。。 “ 可是我不太懂批处理编程,属于初学阶段 不会写你所说的 ”在该文件中查找是否有对应的错误字符串。 “




路 是自己选的 学习 是为了具备解决问题的能力
2008-1-8 13:37
查看资料  发短消息 网志  OICQ (625621812)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: