Access表中记录被标记成“已删除”,导致该表的Delete等操作无法完成

五月春生 2008-05-21 03:05:15
色球是我用PB11开发出来的一款五子连珠消除类的益智小游戏,本身未用到数据库,但为了能统计并显示在线玩家,我采用在游戏中读取色球网相关页面信息的方法来实现,但出现这样的问题,我很头疼,网上搜不到根治的方法。

昨晚最高在线人数从75人,短时间内上升至95人,可喜现象。但现在我要尴尬一下,因为今天上午,我发现在线玩家列表和昨晚大部分相同,感觉有问题存在,检查时发现Access库中的Online表中的记录,有几条记录是标记“已删除的”,并且其它记录中有很多是过期数据,网页中的SQL删除语句对其未生效,在Access中用SQL删除这些过期语句失败,至此知道了在线玩家统计错误的原因所在。在CSDN上查到解决方法,手动删除“已删除”记录,然后进菜单“压缩和修复数据库”,之后查表,有“#”号标记的记录,再手动删除,之后再执行Delete语句,执行正常。可以正确统计在线玩家信息。

问题虽解决,但原因不明,如果根治此问题,也不明。请高手指点。谢谢。

色球网www.colorlinez.cn

CL群(主群,将满):35901293
CL2群(副群):60218289
色球群(本人色球群):47614879



...全文
535 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
五月春生 2008-05-31
  • 打赏
  • 举报
回复
嗯。楼上说可能不是Access并发的问题,是我程序的问题。前天几我在ASP页面中加了简单的并发控制之后,几天之后的今天,我检查数据库,特别是曾出错的表,未发现异常。

我加在ASP页面中的并发控制代码如下:
'Begin涉及多用户同时操作UserOnline表,因此采取并发控制。
'先检查UserOnline表是否空闲,如果是,则继续,否,则退出
set rs_c=Server.CreateObject("Adodb.Recordset")
sql_c="select * from CheckOnline where ID = 1"
rs_c.open sql_c,conn,1,3

if rs_c("IsOnlineLeisure") = True then
rs_c("IsOnlineLeisure") = False'操作Online表之前,将CheckOnlineLeisure表的该字段值设为False,表示当前Online表正在使用,加锁
rs_c("ModifyDateTime")=Cstr(Now())
else'为False,表示非空闲,退出,等待空闲

if Cint(DateDiff("h",CDate(rs_c("ModifyDateTime")),now())) > 1 then
rs_c("IsOnlineLeisure") = True
rs_c("ModifyDateTime")=Cstr(Now())
end if
rs_c.Update
rs_c.Close
set rs_c = nothing
Response.End()
end if
rs_c.Update
rs_c.Close
set rs_c = nothing
'End
ccssddnnhelp 2008-05-25
  • 打赏
  • 举报
回复

应该不是ACCESS并发的问题,估计是你程序的问题。.
==== ====

.
贴子分数<20:对自已的问题不予重视。
贴子大量未结:对别人的回答不予尊重。
.
五月春生 2008-05-25
  • 打赏
  • 举报
回复
修复过后,没几天,又出现同样的问题了,然后又消失了,结果直接在表中显示某些记录是“错误”……

搞得网站连数据库都打不开了,显示“系统日常维护中……”,压缩和修复最近备份的数据库,替换后,OK了。真是的,看来几十位玩家在线,频繁地读取ASP网站的Access数据库,还是有问题的啊。看来还要拉长读取和修改的时间间隔。
liuyann 2008-05-21
  • 打赏
  • 举报
回复



==== ====

编程夜猫 2008-05-21
  • 打赏
  • 举报
回复
yebin66 2008-05-21
  • 打赏
  • 举报
回复
帮顶
hangzhou6274 2008-05-21
  • 打赏
  • 举报
回复
帮顶
wfexp 2008-05-21
  • 打赏
  • 举报
回复
不懂,帮你顶
WWWWA 2008-05-21
  • 打赏
  • 举报
回复
MDB对网络的支持不好,理论支持255个用户,估计是由于负荷太大,导致MDB数据遭到破坏吧。

如果根治此问题
更换数据库

7,713

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧