Maison base de données tutoriel mysql Access ADO多连接时数据延迟无法同步无法及时更新的解决办法

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

Jun 07, 2016 pm 03:42 PM
access 同步 延迟 数据 连接

这个问题由来已久,由于不是非常影响项目进度,所以一直没有重视。最近闲来,又遇到此问题,决心仔细研究一番。上网搜了半天,整整半天,没有发现比较通俗易懂的文章,没办法,看看微软的资料,自己动手吧,把这个解决过程记录下来,以供大伙参考。 问题描述

这个问题由来已久,由于不是非常影响项目进度,所以一直没有重视。最近闲来,又遇到此问题,决心仔细研究一番。上网搜了半天,整整半天,没有发现比较通俗易懂的文章,没办法,看看微软的资料,自己动手吧,把这个解决过程记录下来,以供大伙参考。


问题描述:

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引擎强制刷新 查询连接的 数据缓存。

#import "c:\program files\common files\system\ado\msjro.dll"

//开始事务
m_pConnection->BeginTrans();
//inster update delete操作 代码省略

//提交
m_pConnection->CommitTrans();

<pre class="brush:php;toolbar:false">//在查询前刷新缓存 刷新过后进行查询操作,数据就不会有延迟现象了。
BOOL CDBOperate::RefreshData()
{
	JRO::IJetEnginePtr jet(__uuidof(JRO::JetEngine));
	jet->RefreshCache(m_pConnection);
	return TRUE;
}
Copier après la connexion

Copier après la connexion
Copier après la connexion
通过上述代码,实现ACCESS多连接数据同步。

参考文章

http://support.microsoft.com/kb/200300

Copier après la connexion
Copier après la connexion
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quels sont les avantages du multithreading en C #? Quels sont les avantages du multithreading en C #? Apr 03, 2025 pm 02:51 PM

L'avantage du multithreading est qu'il peut améliorer les performances et l'utilisation des ressources, en particulier pour traiter de grandes quantités de données ou effectuer des opérations longues. Il permet d'effectuer plusieurs tâches simultanément, améliorant l'efficacité. Cependant, trop de threads peuvent conduire à une dégradation des performances, vous devez donc sélectionner soigneusement le nombre de threads en fonction du nombre de cœurs CPU et de caractéristiques de tâche. De plus, la programmation multi-thread implique des défis tels que les conditions de blocage et de race, qui doivent être résolues à l'aide de mécanismes de synchronisation, et nécessite une connaissance solide de la programmation simultanée, pesant les avantages et les inconvénients et les utilisant avec prudence.

Comment utiliser SQL IF Comment utiliser SQL IF Apr 09, 2025 pm 06:12 PM

Les instructions SQL IF sont utilisées pour exécuter conditionnellement les instructions SQL, avec la syntaxe comme: if (condition) alors {instruction} else {instruction} end if;. La condition peut être n'importe quelle expression SQL valide, et si la condition est vraie, exécutez la clause alors; Si la condition est fausse, exécutez la clause ELSE. Si les déclarations peuvent être imbriquées, permettant des contrôles conditionnels plus complexes.

Impossible de se connecter à MySQL en tant que racine Impossible de se connecter à MySQL en tant que racine Apr 08, 2025 pm 04:54 PM

Les principales raisons pour lesquelles vous ne pouvez pas vous connecter à MySQL en tant que racines sont des problèmes d'autorisation, des erreurs de fichier de configuration, des problèmes de mot de passe incohérents, des problèmes de fichiers de socket ou une interception de pare-feu. La solution comprend: vérifiez si le paramètre Bind-Address dans le fichier de configuration est configuré correctement. Vérifiez si les autorisations de l'utilisateur racine ont été modifiées ou supprimées et réinitialisées. Vérifiez que le mot de passe est précis, y compris les cas et les caractères spéciaux. Vérifiez les paramètres et les chemins d'autorisation du fichier de socket. Vérifiez que le pare-feu bloque les connexions au serveur MySQL.

Comment éviter les interfaces tierces renvoyant 403 erreurs dans l'environnement nœud? Comment éviter les interfaces tierces renvoyant 403 erreurs dans l'environnement nœud? Apr 01, 2025 pm 02:03 PM

Comment éviter l'interface tiers renvoyant 403 erreur dans l'environnement de nœud. Lorsque vous appelez l'interface de site Web tiers à l'aide de Node.js, vous rencontrez parfois le problème de la retournement de l'erreur 403. � ...

Comment résoudre 'l'erreur de réseau' causée par Vue Axios à travers les domaines Comment résoudre 'l'erreur de réseau' causée par Vue Axios à travers les domaines Apr 07, 2025 pm 10:27 PM

Méthodes pour résoudre le problème du domaine transversal de Vue Axios incluent: Configurer l'en-tête CORS côté serveur à l'aide du proxy Axios à l'aide de JSONP à l'aide de WebSocket à l'aide du plug-in CORS

Comment obtenir efficacement composant_verify_ticket dans Easywechat 5.5? Comment obtenir efficacement composant_verify_ticket dans Easywechat 5.5? Apr 01, 2025 pm 12:42 PM

Obtenez des composants en ligne dans Easywechat5.5 ...

Comment utiliser les journaux Debian Apache pour améliorer les performances du site Web Comment utiliser les journaux Debian Apache pour améliorer les performances du site Web Apr 12, 2025 pm 11:36 PM

Cet article expliquera comment améliorer les performances du site Web en analysant les journaux Apache dans le système Debian. 1. Bases de l'analyse du journal APACH LOG enregistre les informations détaillées de toutes les demandes HTTP, y compris l'adresse IP, l'horodatage, l'URL de la demande, la méthode HTTP et le code de réponse. Dans Debian Systems, ces journaux sont généralement situés dans les répertoires /var/log/apache2/access.log et /var/log/apache2/error.log. Comprendre la structure du journal est la première étape d'une analyse efficace. 2.

Comment configurer Zend pour Apache Comment configurer Zend pour Apache Apr 13, 2025 pm 12:57 PM

Comment configurer Zend dans Apache? Les étapes pour configurer Zend Framework dans un serveur Web Apache sont les suivantes: installer Zend Framework et l'extraire dans le répertoire du serveur Web. Créez un fichier .htaccess. Créez le répertoire d'application Zend et ajoutez le fichier index.php. Configurez l'application Zend (application.ini). Redémarrez le serveur Web Apache.

See all articles