高手看过来:关于SQLExecute的问题

enjoyu 2003-06-23 10:20:34
现在有两个线程或进程,记为:A,B。 A用于向数据库(access数据库)写记录,B用于向数据库读记录。A每向数据库写(事实上是更新一条记录)完一条记录后就向B发送一个通知,B就去读那条记录。A写完的标志是执行SQLExecute,即调用SQLExecute后再向B发送通知(由于这比较重要,所以重复了一下)。 现在的问题是:B读取不到A更新后的记录,似乎A执行SQLExecute只是表面上的执行,或者说只是提交了一个执行语句而已,并没有再物理上(暂且这样说了)执行该语句,而B反而提前开始读取了。 请问SQLExecute是异步的方法吗? 我曾经试着让A执行SQLExecute后sleep 1秒再通知B, 就可以避免上面的错误,但由于数据量比较大,这样的方法不现实。 好像说可以在调用SQLExecute后再关闭数据库连接,再通知B,也能确保不出现上述问题,可是这样也不现实。 请问有哪位高手知道可以让SQLExecute真正的立即在物理上的执行?
...全文
167 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
enjoyu 2003-06-26
  • 打赏
  • 举报
回复
SQLExecute同步就是在执行完了再返回,它可以设为异步模式,就是提交一下立即返回。
这指的是函数同步。


genway 2003-06-25
  • 打赏
  • 举报
回复
另外,逻辑上往往不可靠,M公司产品指南上写的,常与实际情况不一致。我想这个地球人都知道...
genway 2003-06-25
  • 打赏
  • 举报
回复
sql execute 同步是什么概念啊,有点晕,数据同步应该不是在这里出现吧??
enjoyu 2003-06-25
  • 打赏
  • 举报
回复
楼上的:A线程写记录是没有加锁的,因为从逻辑上来讲,B读一定是在A写完成之后,而且
我查了一下,这里用的SQLExecute是同步的。
genway 2003-06-25
  • 打赏
  • 举报
回复
A线程写记录是如何加琐的?可能与此有关吧。不同线程操作同一数据库,与多用户操作同一数据库应该是一个道理(站在数据库读写角度)。
tchatcha 2003-06-25
  • 打赏
  • 举报
回复
帮你up
远太狼 2003-06-24
  • 打赏
  • 举报
回复
帮你up
enjoyu 2003-06-23
  • 打赏
  • 举报
回复
up

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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