关于线程和数据库,这个问题快把我的分用完了!!! 在此处你为什么要实现多线程,其实你可以通过在使用CDaoRecordset这个类的实例前进行控制,在使用前用线程进行同步,这样实现起来就比较方便了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 像access等单用户的数据库系统是需要进行同步处理的,数据库的同步处理主要是处理好insert、update等SQL语句的同步处理,即保证对某个table的所有的insert、update等操作在任何时刻只能有一个进行。因此,解决此问题的关键应该是为每一个table设计一个同步对象。用CCritialSection.Lock/Unlock即可,但你将其放在CDaoRecordset的构造函数和析构函数中是起不到任何作用的,应该是用Lock和Unlock对子将需要同步的操作序列包含起来(这些代码在CDaoRecordset的访问者中,不是在CDaoRecordset派生类的内部),例如: m_Critic_Table1.Lock(); //m_Critic_Table1为为Table1设计的同步对象 对CDaoRecordset的操作;//各种对Table1的插入、修改等操作 m_Critic_Table1.Unlock();你将CCritialSection.Lock/Unlock放在构造函数和析构函数中产生的效果只是保证了DaoRecordset的构造过程和析构过程被同步,与数据库的操作无任何关系,另外,CritialSection只能保证某个进程内部的线程间的同步,如果有两个或多个进程需要对同一个table进行操作,就要使用mutex. VC如何使用.cmd这种编译脚本 非模态窗口显示 timeSetEvent的第四个参数“用户提供的回调数据”怎么用啊?? 求助odbc与sql server的问题 如何修改注册表,使IE地址栏消失或者出现(或新toolbar) 超级奇怪的问题,XP的大Bug? 求救 文件操作问题。 在EVC4中,有Windows Sockets性质的MFC应用程序不能用winsock2.h头文件吗? 变量声明问题 dbgheap.c是什么文件? 谁知道哪里有《Unauthorized Windows 95》《Undocumented Windows 》这两本书?
用CCritialSection.Lock/Unlock即可,但你将其放在CDaoRecordset的构造函数和析构函数中是起不到任何作用的,应该是用Lock和Unlock对子将需要同步的操作序列包含起来(这些代码在CDaoRecordset的访问者中,不是在CDaoRecordset派生类的内部),例如:
m_Critic_Table1.Lock(); //m_Critic_Table1为为Table1设计的同步对象
对CDaoRecordset的操作;//各种对Table1的插入、修改等操作
m_Critic_Table1.Unlock();
你将CCritialSection.Lock/Unlock放在构造函数和析构函数中产生的效果只是保证了DaoRecordset的构造过程和析构过程被同步,与数据库的操作无任何关系,
另外,CritialSection只能保证某个进程内部的线程间的同步,如果有两个或多个进程需要对同一个table进行操作,就要使用mutex.