多线程操作ACCESS的问题
2个线程操作ACCESS,1个线程执行INSERT后,另外1个线程UPDATE,为什么有时候能更新有时候又找不到对应的记录呢。通过跟踪,发现虽然进行了INSERT,UPDATE的时候并没有对应的记录。通过查数据表,发现INSERT确实是运行。
请问各位大虾如何解决?下面是日志:
处理中:UPDATE TB_SMSMT_LOG SET FRESULT= 'True ',FSENDTIME=NOW() WHERE FMSGID=160168
INSERT INTO TB_SMSMT_LOG (FMSGID,FMOBILE,FMSG,FATTIME,FPROCESS) VALUES (160169, '15918706602 ', 'IbatisNet 是另外一种优秀的Java O/R mapping 框架,当前版本是1.2 。目前属于apache的一个子项目了。 ', '2007-3-27 9:56:56 ',2)
DELETE FROM TB_SMSMT WHERE FID=160169
SELECT COUNT(0) FROM TB_SMSMT_LOG WHERE FMSGID=160169
搜索到记录数:1
处理中:UPDATE TB_SMSMT_LOG SET FRESULT= 'True ',FSENDTIME=NOW() WHERE FMSGID=160169
INSERT INTO TB_SMSMT_LOG (FMSGID,FMOBILE,FMSG,FATTIME,FPROCESS) VALUES (160170, '15918706617 ', 'IbatisNet 是另外一种优秀的Java O/R mapping 框架,当前版本是1.2 。目前属于apache的一个子项目了。 ', '2007-3-27 9:56:56 ',2)
DELETE FROM TB_SMSMT WHERE FID=160170
SELECT COUNT(0) FROM TB_SMSMT_LOG WHERE FMSGID=160170
搜索到记录数:0
处理中:UPDATE TB_SMSMT_LOG SET FRESULT= 'True ',FSENDTIME=NOW() WHERE FMSGID=160170
INSERT INTO TB_SMSMT_LOG (FMSGID,FMOBILE,FMSG,FATTIME,FPROCESS) VALUES (160171, '15918706626 ', 'IbatisNet 是另外一种优秀的Java O/R mapping 框架,当前版本是1.2 。目前属于apache的一个子项目了。 ', '2007-3-27 9:56:56 ',2)
DELETE FROM TB_SMSMT WHERE FID=160171
SELECT COUNT(0) FROM TB_SMSMT_LOG WHERE FMSGID=160171
搜索到记录数:0
------解决方案--------------------GZ & UP
------解决方案--------------------ACCESS不支持多线程
------解决方案--------------------Access在Insert数据时,会有一定的延时,要及时关闭数据库连接,然后打开,然后才可以取出。
------解决方案--------------------access不能同时有超过一个的连接,a线程要打开数据库时,b必须关掉数据库,否则只有等待数据库被关闭
------解决方案--------------------xiaxilin(good good study, day day up!) ( ) 信誉:95 Blog 2007-03-27 11:36:23 得分: 0
access不能同时有超过一个的连接,a线程要打开数据库时,b必须关掉数据库,否则只有等待数据库被关闭
-------------
up
------解决方案--------------------MODE = Share,做共享可以多连接打开,但,小心INSERT与UPDATE的先后关系
还有,共享有多种共享,要做读写共享