【发布时间】:2012-11-01 22:55:48
【问题描述】:
我有一个我支持的旧版 ASP 应用程序。我所说的支持是指自 2005 年左右以来我没有碰过它,因为它刚刚起作用。
但是,在 ASP 应用程序使用的 Access 数据库中存在一些数据问题。所以像个傻瓜一样,我直接通过文件共享打开数据库(使用 MS Access 2007),修复数据并将其保存下来(以 Access 2000 格式)。
现在应用程序将检索并显示数据正常,但任何更新都会失败并出现错误3705: Operation is not allowed when the object is open。我没有以任何方式更改代码,唯一的更改是数据更新和数据库保存。
我发现了很多这个错误的例子,但它们都与相当简单的问题有关,比如确保在打开记录集之前关闭它、更改 CursorLocation 枚举等。我已经尝试了其中的大部分,但都是徒劳的有些东西会起作用,但什么都没有。
有什么办法可以解决这个问题吗?
谢谢。
更新
我安装了一个基于 Web 的访问数据库管理系统,并尝试压缩和修复数据库。我收到了错误:
The Microsoft Jet database engine cannot open the file '<snip>'. It is
already opened exclusively by another user, or you need permission to view
its data. (-2147217911)
我已经运行了详细的宏 here 来确定谁登录到了数据库,并且只显示了管理员用户(在运行时是我)
【问题讨论】:
-
"保存下来" 您是保存还是另存为?你有一个 *.ldb 吗?你试过紧凑和修理吗?
-
我保存了(不另存为)。没有 ldb 文件。发现问题后,我尝试了紧凑型和修复。谢谢。
-
另一个想法,当你上传的时候,权限有没有改变?这可以解释为什么你能读但不能写。 MS Access 需要对文件和文件夹进行读/写。
-
谢谢 - 这是我试图找出的东西(因为我只能访问文件共享)。但是,由于我只进行了保存(即,我没有明确地复制它或其他任何东西),我不会这么认为。我唯一不确定的是通过文件共享保存。
标签: asp-classic adodb recordset