【发布时间】:2019-06-20 18:46:18
【问题描述】:
单用户没问题,但同时测试多用户时出现以下错误。
错误 1: Microsoft Jet 数据库引擎停止了该进程,因为您或其他用户试图同时更改相同的数据。
或
错误 2: 无法更新;目前已锁定。
Set data = Server.CreateObject("ADODB.Connection")
data.connectionstring = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="&Server.MapPath("db/db.mdb")
data.open
set rs = server.CreateObject("adodb.recordset")
rs.open "select * from users where id="&user_id,data,1,3
rs("ip") = ip
rs.update
rs.close : set rs = NOthing : data.close : set data= NOthing
【问题讨论】:
-
嗯,Microsoft 在任何地方都非常明确,您应该不将 Access 用作网站或服务的数据库。如果这样做,肯定会出现锁定冲突和并发问题。
-
更新应该只需要一瞬间,所以看起来连接没有关闭,即使您尝试关闭。为什么,我不能说。
-
您是否在 Access 桌面程序中打开了您的 jet 数据库?如果您这样做,肯定会为其他用户“锁定”它 - 即您的网站。如果您在提取所需数据并完成此操作后关闭记录集和连接,则 jet 数据库可以作为低流量网站的后端。
标签: ms-access asp-classic