当程序用ado的jet4.0方式连接的时候,对于设有access数据库密码的mdb的访问居然报错“无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开”,而用odbc方式不报错,小阴沟里翻船,郁闷中然后查文档解决之:
错误 7399
严重级别 16
消息正文
OLE DB 提供程序 \'\'%1!\'\' 报错。%2!
无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。
解释
用于 Jet 的 Microsoft OLE DB 提供程序返回的错误信息表明以下情况之一:
- Microsoft? Access 数据库不是受保护的数据库,且指定的登录和密码不是无密码的 Admin。
- Access 数据库受到保护,并且 HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Jet\\4.0\\SystemDB 注册表键值未指向正确的 Access 工作组文件。受保护的 Access 数据库具有相应的工作组文件,其中包括应由上面的注册表键值指出的完整路径。
对策
验证当前 Microsoft SQL Server? 的登录是否映射为无密码的 Admin。
如果正在访问的 Access 数据库受到保护,请确保上面的注册表键值指向 Access 工作组文件的完整路径名。
ADOConnection.C
程序运行到ADOConnection.open时出错,显示“无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开。”请问该OPEN语句该这样写? 注:该ACCESS数据库安装在服务器上,要求多用户可同时使用! 水平: 中级(周明) 问题出在: ADOConnection.C 不能用Password的形式定义数据库密码,应该改成: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=filename.mdb ;Persist Security Info=False;Jet OLEDB:Database Password=Psd
|