Delphi access数据库密码的mdb的访问报错“无法启动应用程序,或是已被其他用户已独占方式打开”


本文整理自网络,侵删。

 
解释

用于 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.ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False; Password=Psd;Data Source=filename.mdb" 程序运行到ADOConnection.open时出错,显示“无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开。”请问该OPEN语句该这样写?      

注:该ACCESS数据库安装在服务器上,要求多用户可同时使用!     

问题出在:    

 ADOConnection.ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False; Password=Psd;Data Source=filename.mdb"     

不能用Password的形式定义数据库密码,应该改成:     

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=filename.mdb ;Persist Security Info=False;Jet OLEDB:Database Password=Psd

ADOConnection1.close;
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='+ExtractFilePath(Application.ExeName)+'\data\mpdata.mdb;Mode=Share Deny None;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password=mp611;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:SFP=False';
ADOConnection1.Connected:=true;

――――――――――――――――

原文链接:https://blog.csdn.net/Trassion/article/details/17120925



相关阅读 >>

Delphi tfilestream和tmemorystream分别读取、创建、合并文件

Delphi xe 版本 示例原码下载

Delphi nethttpclient post 函数

Delphi idtcpclient和idtcpserver主要属性

Delphi fdmemtable1建立缓存表 模糊查询

Delphi setcursorpos函数在窗口上定位鼠标坐标

Delphi文件操作所涉及的一些函数

wmi使用的win32_类库名

Delphi如何把一个文本列表添加到tlistbox并避免重复项

Delphi enumwindows 获取窗体句柄 进程id 窗体信息

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...