多个连接connection使用ADO写入再读取数据延迟的一种解决办法-老季
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> 源码示例


多个连接connection使用ADO写入再读取数据延迟的一种解决办法

发表时间:2017/12/22 13:06:03 评论(6) 浏览(11864)  评论 | 加入收藏 | 复制
   
摘 要:多个连接connection使用ADO分别写入再读取,存在数据缓存的问题,这里是一种解决办法
正 文:

之前我们公司的资料是用excel做的,随着资料的增加,运行越来越慢,而且同事用的时候,数据录入比较随意,造成很多错误。

9月底,百度了一些资料,决定用access来解决,在淘宝买了本书开始学习access

10月国庆假过后,开始看书,翻了一遍,再看看access自带的帮助文件,发现我白买了,那个书写的真基础,书名是相世强著。

然后继续百度,找到了access软件网,进而发现了MV软件平台。

因此顺利完成了整个系统的设计.数据可以进行有效性的验证,而且非常方便,比excel填表格快速,还方便多人共享

昨日一个同事抱怨,做完系统的资料,还要把数据导出到我们另外一个打印系统

因此决定在我的系统内解决数据同步的问题,ado连接到SqlServer

结果发现,系统自动获得的连接是后台数据库的,rst在update后

再打开前台数据库的连接去读取保存的查询获得rst2

再把rst2 循环赋值给SqlServer的SQLrst


    Dim r As ADODB.Field  
    For Each r In rst2.Fields
        sql_rst(r.Name) = r.Value
    Next r


然后在SqlServer中看,发现数据是update之前的


在本网站也找了文章,说就是有这个延迟

[用ADO写入数据时,确实存在延迟问题]

http://www.accessoft.com/article-show.asp?id=10162

照着这篇文章用sleep,可以解决

可是我就想知道有没有其他解决办法

然后百度各种资料,在微软网站发现一篇文章

[How To Synchronize Writes and Reads with the Jet OLE DB Provider and ADO]

https://support.microsoft.com/zh-cn/help/200300/how-to-synchronize-writes-and-reads-with-the-jet-ole-db-provider-and-a


解决方法就有了,和大家分享下:


代   码:

Dim JRO As New JRO.JetEngine'先添加这个引用   
Dim cnn As ADODB.Connection
Set cnn = GetADOConnection()'平台是用这个获得后台数据库连接
Dim cnn2 As ADODB.Connection
Set cnn2 = CurrentProject.Connection'这个活动前端的连接
Dim rst As New ADODB.Recordset
dim strSQL
strSQL="你的sql语句,修改增加等"
dim strSQL2
strSQL2="你的sql语句2,查询"
Set rst = ado.OpenRecordset(strSQL, adLockOptimistic, cnn)
cnn.BeginTrans
'rst.update addnew等操作
cnn.CommitTrans
rst.Close
JRO.RefreshCache cnn2'刷新
set rst=ado.OpenRecordset(strSQL2, adLockOptimistic, cnn2)'获得新的rst,内容已经更新了

Access软件网交流QQ群(群号:198465573)
 
 相关文章
【译文】如何用ADO代码实现窗体记录集的绑定  【周芳  2013/12/24】
DAORunSQL比ADORunSQL慢半拍的节奏  【Qiu J.X.  2014/11/8】
用ADO写入数据时,确实存在延迟问题  【我的ACCESS  2015/5/15】
ADO读写后台示例  【小小白菜  2016/3/15】
通过ADO直接对SQL服务器中的表进行操作  【易勋  2016/12/15】
常见问答
技术分类
相关资源
文章搜索
关于作者

老季

文章分类

文章存档

友情链接