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

lpb830820 2008-03-28 10:50:13
定义了一个表(A),有设主键字段,插入数据的时候明明是有重复数据,但没有抛出错误,且照样能成功插入,但重复的记录只插入了一条。我是用 VB 写的代码,是一次性写好要插入执行的 SQL 语句(都是 Insert Into 的语句)后才执行的。按道理当插入到有重复数据时应该会抛出错误出来,但是没有。我在代码上增加错误处理(如:On Error Goto XXX/Resume Next)之类的代码,但并没有接收到任何错误。有时候执行存储过程的时候,明明执行是有错误的,但一样没有错误出现,而且也是一样能成功执行下去。
...全文
104 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
最好贴你的代码,猜不出来
「已注销」 2008-03-28
  • 打赏
  • 举报
回复
用事务
华芸智森 2008-03-28
  • 打赏
  • 举报
回复
是不是在调用该函数的上一个函数有 ON ERROR RESUME NEXT

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧