access数据延迟问题,高手进来看看。

okwang1979 2006-03-23 01:44:56
有一张表大概1万多条记录,首先插入,之后,马上点击查询按钮,可是这个记录不能备查询出来。
望解决。
con.execute("insert t1 values(10001)")
set rs=con.execute("select max(c1) as c1 from t1 ")
i=rs("c1")
msgbox(i)

如果点击查询按钮速度快,输出为10000
备注:我的access数据库的内容当让不能象上表那么简单,意识查不多了
...全文
89 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
of123 2006-03-24
由于你的记录太多,更新时会引起虚拟内存的磁盘交换,因此更新的进度会比代码运行速度慢。 SQL 语句的执行是将 SQL 语句发送到数据库引擎就算完成。

解决方法:
1 使用记录集对象来插入记录:
con.curserlocation = aduseclient
rs.open "select * from t1", con
rs.addnew
rs!c1 = 10001
rs.update
rs.bookmark = rs.lastmodified

2 使用带有事件的 con
Dim WithEvents con as ADODB.Connection '必须在通用段中声明
Dim done As Boolean

Private Sub con_ExecuteComplete(ByVal RecordsAffected As Long, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)
done = True
End Sub

Private Sub con_WillExecute(Source As String, CursorType As ADODB.CursorTypeEnum, LockType As ADODB.LockTypeEnum, Options As Long, adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)
done = False
End Sub

你的代码改为:
con.execute("insert t1 values(10001)")
Do Until done
DoEvents
Loop
set rs=con.execute("select max(c1) as c1 from t1 ")
i=rs("c1")
msgbox(i)
  • 打赏
  • 举报
回复
射天狼 2006-03-24
有可能会出现延迟,你统计难道非要这么精确吗?


╭════════════════════════════╮
║                            ║
║  免费的学习、交流、源码、工具网站,欢迎大家访问!  ║
║  http://www.j2soft.cn/                ║
╰════════════════════════════╯
  • 打赏
  • 举报
回复
watt 2006-03-23
最好使用事务处理,能保证数据的一致性。
con.execute("insert t1 values(10001)")
完成后Commit,
然后再查询
  • 打赏
  • 举报
回复
gjianpro 2006-03-23
楼上的使用doevents,是使计算机完成doevents之前的程序语句,然后再执行doevents语句之后的程序语句,可以解决问题..
  • 打赏
  • 举报
回复
gjianpro 2006-03-23
应用程序和数据库之间的I/O是需要n个机器周期时间的.
lz的问题只能通过控制数据库的读写来解决.
  • 打赏
  • 举报
回复
DengXingJie 2006-03-23
con.execute("insert t1 values(10001)")
doevents
set rs=con.execute("select max(c1) as c1 from t1 ")
i=rs("c1")
msgbox(i)
  • 打赏
  • 举报
回复
相关推荐
发帖

1188

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2006-03-23 01:44
社区公告
暂无公告