一个access的数据库,有二个用户连接,一个程式是dll的exe1连接。另一个程式是exe2连接,当dll更新数据时,需要通知exe2 access数据库某表记录已更新。但是出现了一个很奇怪的现象。我在dll更新好某个表的某记录后,在exe进行查询时发现,找回的是之前dll没有更新时的数据,再查找多一次时就能得到dll更新后数据库后的数据,我已确保dll在发通知exe2之前对access 数据库进行了更新,而且我打开过access数据表看过确实已更新,但在在exe2收网络消息UDP,打断点一步步跟踪就可以得到dll更新后正确的数据,如果没有断点就得不到dll更新后的数据。
请问:会不会是access数据库内存缓冲的问题呢。内存缓冲没有得到及时更新,所以找回的就是之前exe2查询数库留下的内存缓冲,还是其它问题造成的呢。
各位有遇到这样的问题吗。可以这样试一下。
之前某个表的状态:
usertable
username online
cc       1 
dd       0
从这可以看出当前只有一个(1)用户在线dll的exe更新数据表中的某条记录
username online
cc       0 
dd       0
发通知告诉exe2,但是在exe2里发到通知后,进行查询
(在这我打开access数据表查看也发现记录已更新过了。)select count(online) as total from usertable where online=1查到的仍然是1,应该是0才对的。问题现象是这样,请帮忙解决,谢谢。