如何能保证ado记录集可以正常close呀?因为如果有未完成的更新时,则进行close就报错.
我看到msdn的代码示例中,记录集关闭时都是直接close的,然后 set rs=nothing,可是我将记录集设成立即更新模式时,如果更新没有正常完成.则关闭这个记录集时就会报错,提示:
实时错误 "3219"
在些环境中不充许操作
如何解决这个问题呀,因为更新异常是很正常的事.
我定义了一个窗体级的ado记录集,每次更新后要重新打开数据,这就要先关闭这个记录集.可是如果有未完成更新则关闭时就报以上这个错.我问的是一个最初级的问题了,可是我不会处理,大家是如何处理这类问题的呢?
每次用记录集获取数据时,都先要关闭它,然后重新打开.
在close前要加判断吗?如何加.
我看到msdn的代码示例中,记录集关闭时都是直接close的,然后 set rs=nothing,可是我将记录集设成立即更新模式时,如果更新没有正常完成.则关闭这个记录集时就会报错,提示:
实时错误 "3219"
在些环境中不充许操作
如何解决这个问题呀,因为更新异常是很正常的事.
我定义了一个窗体级的ado记录集,每次更新后要重新打开数据,这就要先关闭这个记录集.可是如果有未完成更新则关闭时就报以上这个错.我问的是一个最初级的问题了,可是我不会处理,大家是如何处理这类问题的呢?
每次用记录集获取数据时,都先要关闭它,然后重新打开.
在close前要加判断吗?如何加.
------------------------------
谢谢,是给我提供一个思路,我想试试.
但是我还要问一下:既然ado中设计了记录集更新的方法,所以我想应该比较高效吧.总觉得用sql方法更新数据库有点老土,[不知这种看法对不对],而且用ado自已的更新,代码要少很多,因为很多事情ado都封装好了.所以就学习的角度而言,我还想明白一下,也就是不用sql方法而用ado的update方法时,如何避免我说的问题.
adStateOpen 对象是打开的。
adStateConnecting Recordset 对象正在连接。
adStateExecuting Recordset 对象正在执行命令。
adStateFetching Recordset 对象的行正在被读取。
我想可以在close之前判断一下记录集是不是处于挂起状态.如果处于挂起状态则要先进行rs.cancelupdate,然后再rs.close
可是如何判断是否处于挂起呢?如果每次rs.close之前都加上rs.cancelupdate好象也不行吧.
请老师继续指教.
这种方法简单好用
这种方法简单好用
-------------------
是的,这样免除了未完成更新的问题,可是你想想,如果窗体上有几十个文本框,更新时,如果用sql代码来更新,代码量是很大的,而且如果字段有变化,维护时工作量更大.如果用记录集的更新会方便很多.再者,既然ms设计出ado记录集可以更新的功能,所以我想不应该弃之不用的.
关键是对它要有一定的理解,我目前就是对ado了解太少了.