Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > 源码示例

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

时 间:2017-12-22 13:06:03
作 者:老季   ID:64085  城市:南通
摘 要:多个连接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群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助