【问题标题】:classic asp - ms access update problem (The Microsoft Jet database engine stopped)经典 asp - ms 访问更新问题(Microsoft Jet 数据库引擎停止)
【发布时间】: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


【解决方案1】:

你试过了吗:

dim bensql
bensql="select * from users where id="&user_id
rs.Open bensql, data,3,3
if not rs.eof then
    rs("ip") = ip
    rs.update
end if
rs.close

可能是因为另一个用户试图同时更改相同的数据,查询无法确定 rs.eof 与否

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多