我有一个支持的传统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来确定谁登录到数据库,并且只显示了管理员用户(这是我 - 在运行时)
答案 0 :(得分:0)
这些错误意味着一件事:数据库文件被其他进程打开,因此被锁定。
最有可能的是基于网络的访问数据库管理系统&#34;是罪魁祸首,试着找到如何配置它不锁定文件,或摆脱它。
作为解决实际问题的方法或方法,您可以将.mdb文件复制到不同的位置并更改经典的ASP连接字符串,以检查是否可以在新位置更新数据库。
答案 1 :(得分:0)
@ Remou上面关于检查文件和文件夹权限的评论是正确的。
我让我们的服务器管理员检查权限,似乎写访问权已从文件夹中删除(文件也从文件夹继承了他们的权限)。他说,这是在直接保存文件共享之前发生的。
(接受来自@Remou的回答)