操作数据库时明明是有错误但没有抛出错误,且照样成功执行

lpb830820 2008-03-28 10:50:13
定义了一个表(A),有设主键字段,插入数据的时候明明是有重复数据,但没有抛出错误,且照样能成功插入,但重复的记录只插入了一条。我是用 VB 写的代码,是一次性写好要插入执行的 SQL 语句(都是 Insert Into 的语句)后才执行的。按道理当插入到有重复数据时应该会抛出错误出来,但是没有。我在代码上增加错误处理(如:On Error Goto XXX/Resume Next)之类的代码,但并没有接收到任何错误。有时候执行存储过程的时候,明明执行是有错误的,但一样没有错误出现,而且也是一样能成功执行下去。
...全文
47 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
guyehanxinlei 2008-03-29
将错误处理语句先去掉再慢慢调试,加了ON ERROR RESUME NEXT 当然是看不到错误信息的了,即使有错程序也将忽略掉执行下面的语句了.
回复
forbearORfolie 2008-03-29
可以搜索一下老帖子,有很多类似的问题,这类问题目前没有好的解决方法
回复
lpb830820 2008-03-28
我并没有用过 On Error Resume Next ,这些错误处理的用法我是知道的。而且我已经是用了事务了。因为我写的代码很长,耐用是有关联性的,所以不便贴出代码。不过大概的代码结构是这样:

Private Function f_Save() As Boolean
On Error Goto ErrHanddle

'= 开始事务
m_objADOConnect.BeginTrans

'= 循环网格的每一行,组合插入到表的 Insert Into 执行语句
For i = 1 To 网格.Rows -1
'= 组合执行的 Insert Into 语句
Next

'= 开始执行
m_objADOConnect.Execute(strSQL) '= 因为插入的数据有重复,按道理会抛出错误,但并没有,且能成功执行

'= 提交事务
m_objADOConnect.CommitTrans

Exit Function

ErrHanddle:
'= 错误处理的代码
'= 如何有开始了事务那么就回滚事务
m_objADOConnect.RollbackTrans
End Function
回复
Sweetbaby722 2008-03-28
On Error Resume Next说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。当然不会提示错误了。
回复
vbman2003 2008-03-28
最好贴你的代码,猜不出来
回复
wangwei1979 2008-03-28
用事务
回复
华芸智森 2008-03-28
是不是在调用该函数的上一个函数有 ON ERROR RESUME NEXT
回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7489

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2008-03-28 10:50
社区公告
暂无公告