中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » BCP IN 主键重复 怎样作错误处理?
作者:
标题: BCP IN 主键重复 怎样作错误处理? 上一主题 | 下一主题
zyz0304360
中级用户




积分 257
发帖 123
注册 2008-1-5
来自 烟台
状态 离线
『楼 主』:  BCP IN 主键重复 怎样作错误处理?


@echo off
echo _______BEGIN______>>test.txt
[b]bcp "fee.dbo.Slip" in "Slip.dat" -S. -Usa -P  -n  -E
if errorlevel 1 goto :error[/b]
goto :end
:error
date /T >>test.txt
time /T >>test.txt
there is an error >>test.txt
goto:end
:end
echo _______END______>>test.txt
在BCP IN 出现主键重复这个错误时,怎么才能让能让批处理跳到:error这里?

注:
1.无论BCP IN成功或失败 errorlevel 都是0(echo %errorlevel%)
2.我试过在BCP IN 加 -e 参数(-e errfile.dat),然后用IF EXIST errfile.dat goto :error 但是每次执行BCP IN都生成errfile.dat (很让我失望)



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




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

不好意思
bcp "fee.dbo.Slip" in "Slip.dat" -S. -Usa -P  -n  -E
if errorlevel 1 goto :error

没有
我想突出重点,加粗一下



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




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 3 楼』:  

当主键重复时,BCP会有错误提示或者错误日志文件生成吗?

如果有其一,可以捕捉错误再来判断。

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




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

有错误提示或者错误日志文件生成
但是我不会写捕捉错误的代码



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




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

能不能给点提示或有时间的时候帮忙写一个
谢谢



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




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 6 楼』:  

把bcp命令放在for /f的括号里面,再来用findstr查找,找到就goto就可以了。

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




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

现在有一个test.txt的文件
文件中有“SQLState = 23000, NativeError = 2627”字符串

我现在是DOS初学阶段,只能看懂一些简单的
目前还不会写

请问  
lxmxn
在这种情况下,应该怎样写呢?
谢谢



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




积分 1276
发帖 469
注册 2002-12-23
来自 福建泉州
状态 离线
『第 8 楼』:  

bcp语句后面加find 查找错误代码找到就跳
比如错误代码的特性是error
bcp "fee.dbo.Slip" in "Slip.dat" -S. -Usa -P  -n  -E|find /i "error"&&goto :error



QQ:366840202
http://chenall.net
2008-1-9 17:44
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (366840202)  编辑帖子  回复  引用回复
zyz0304360
中级用户




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

谢谢



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

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


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



论坛跳转: