高手都来看看啊. ADO 访问 Access 数据库问题. 与修改表主键有关,

realdreamer 2002-10-12 12:58:30
用 ADO 打开一个记录集 (Recordset), 通过记录集修改表的主键, 之后再打开这个表, 会发现有错误打开的情况, 数据好像全都看不到. 这是怎么回事?

这个表另外被绑定到 MSHFlexGrid 控件上, 并且, 浏览记录操作或是修改记录操作我的实现总是打开 Recordset 后进行必要的处理, 完后马上关闭. 也就是说程序有频繁的打开记录集关闭记录集操作, 会不会跟这些有关? 是不是与锁定有关?
...全文
94 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhsu 2002-10-12
  • 打赏
  • 举报
回复
对啊,修改主键前先关闭绑定。
realdreamer 2002-10-12
  • 打赏
  • 举报
回复
搞定了!

原因:

果然是与锁定有关的.

在打开一个记录集最后, 调用一个函数, 在这个函数深层又打开了相同的记录集, 我倒, ~~~ 产生与锁定有关的问题. 后打开的记录集无法看到已更新的记录, 所以产生错误.

解决办法: 略.... 错误已知, 自然好解决~~

realdreamer 2002-10-12
  • 打赏
  • 举报
回复
问题是我修改其他字段都没有问题, 只是修改主键后recordset的数据就全变成无效的
realdreamer 2002-10-12
  • 打赏
  • 举报
回复
TO 所有楼上的大侠们:

我有这样的函数调用:
dosomething 调用 GetRecordset ,
执行 dosomething , 应该不会有问题吧?


private sub dosomething()
dim rs as ADODB.Recordset
set rs = GetRecordset
' do something
rs.Close
Set rs = nothing
end sub

public function GetRecordset() as ADODB.Recordset
dim rs as ADODB.Recrodset

' create ADODB.Recordset object , and open it
' ...

Set GetRecordset = rs
end function
PCController 2002-10-12
  • 打赏
  • 举报
回复
Start:
RecordsetObj.Open .......


End:
RecordsetObj.Close
Set RecordsetObj=Nothing

切忌,你的问题肯定出在了Recordset打开之后没有关闭上,如果再打开同一个Recordset就会出问题!
realdreamer 2002-10-12
  • 打赏
  • 举报
回复
会不会与绑定到 MSHFlexGrid 控件上有关, 各位有没有遇到这样的问题啊?

高手出来说说话啊!
allenair 2002-10-12
  • 打赏
  • 举报
回复
没遇到过,我一般把删除修改等操作,分别写在不同的过程或函数中,在其中打开记录集,过程结束就关闭它。
yaoylguest 2002-10-12
  • 打赏
  • 举报
回复
在重新打开RecordSet之前,先关闭。
xiaoxinghappy 2002-10-12
  • 打赏
  • 举报
回复
如果说有事务发生,并且未结束时,打开一个在SQL SERVER 的数据库的某一个表,是这样的,不知道你是不是这个原因。

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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