ADODB记录集错误“对象打开时不允许操作”(3705)

时间:2012-11-01 22:55:48

标签: asp-classic adodb recordset

我有一个支持的传统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来确定谁登录到数据库,并且只显示了管理员用户(这是我 - 在运行时)

2 个答案:

答案 0 :(得分:0)

这些错误意味着一件事:数据库文件被其他进程打开,因此被锁定。

最有可能的是基于网络的访问数据库管理系统&#34;是罪魁祸首,试着找到如何配置它不锁定文件,或摆脱它。

作为解决实际问题的方法或方法,您可以将.mdb文件复制到不同的位置并更改经典的ASP连接字符串,以检查是否可以在新位置更新数据库。

答案 1 :(得分:0)

@ Remou上面关于检查文件和文件夹权限的评论是正确的。

我让我们的服务器管理员检查权限,似乎写访问权已从文件夹中删除(文件也从文件夹继承了他们的权限)。他说,这是在直接保存文件共享之前发生的。

(接受来自@Remou的回答)