日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Access ADO多连接时数据延迟无法同步无法及时更新的解决办法

發布時間:2025/3/21 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Access ADO多连接时数据延迟无法同步无法及时更新的解决办法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這個問題由來已久,由于不是非常影響項目進度,所以一直沒有重視。最近閑來,又遇到此問題,決心仔細研究一番。上網搜了半天,整整半天,沒有發現比較通俗易懂的文章,沒辦法,看看微軟的資料,自己動手吧,把這個解決過程記錄下來,以供大伙參考。

問題描述:

ADODB::_ConnectionPtr?? ?m_pConnection1;

ADODB::_ConnectionPtr?? ?m_pConnection2;

ADODB::_RecordsetPtr?? ?m_pRecordset1;

ADODB::_RecordsetPtr?? ?m_pRecordset2;

初始化過程略去。。。。。。

當使用

m_pRecordset1->Open(pSql ,m_pConnection1.GetInterfacePtr(),ADODB::adOpenDynamic,ADODB::adLockOptimistic,ADODB::adCmdText);

進行INSERT、UPDATE、Delete 操作后,立即用m_pConnection2 和m_pRecordset2 對更新的表進行查詢,發現剛剛m_pConnection1添加的數據根本沒法查出來,修改的數據也沒更新,刪除記錄也依舊乖乖的呆在數據庫里。

這種情況只有在使用兩個或兩個以上連接進行數據庫操作時才會出現,只有一個連接是不會有這個問題的。但很多時候我們不得不使用多個連接同時操作數據,所以問題必須解決。

解決辦法:

在執行增刪改的 SQL語句時使用“事務Transaction” , 使用JRO引擎強制刷新 查詢連接的 數據緩存。

[cpp] view plaincopy
  • #import?"c:\program?files\common?files\system\ado\msjro.dll"??
  • ??
  • //開始事務??
  • m_pConnection->BeginTrans();??
  • //inster?update?delete操作?代碼省略??
  • ??
  • //提交??
  • m_pConnection->CommitTrans();??
  • ??
  • <pre?name="code"?class="cpp">//在查詢前刷新緩存?刷新過后進行查詢操作,數據就不會有延遲現象了。??
  • BOOL?CDBOperate::RefreshData()??
  • {??
  • ????JRO::IJetEnginePtr?jet(__uuidof(JRO::JetEngine));??
  • ????jet->RefreshCache(m_pConnection);??
  • ????return?TRUE;??
  • }</pre><br>??
  • <pre></pre>??
  • 通過上述代碼,實現ACCESS多連接數據同步。??
  • <p></p>??
  • <p></p>??
  • <p>參考文章</p>??
  • <p><a?href="http://support.microsoft.com/kb/200300">http://support.microsoft.com/kb/200300</a></p>??
  • <p></p>??
  • <pre></pre>?
  • 總結

    以上是生活随笔為你收集整理的Access ADO多连接时数据延迟无法同步无法及时更新的解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。