Microsoft.Jet.OLEDB.4.0数据库连接字符串中密码的写法!
2016-06-12 20:56
344 查看
当程序用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.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
改了后就能够正常使用了,nnd,原来jet着鸟 对于设置密码的mdb要用到windows的用户和组角色的设置的,以示安全,可tmd最可笑的是mdb的密码是单独存放的,脆弱的一踏糊涂,用一个小软 件一看就能看到了,就象马奇诺防线,前面铜墙铁壁的,可德国人从后面抱了个园,谁和你正面作战呀,真可悲。。。。。
相关文章推荐
- memcached学习之总览
- mysql连接查询 内连接查询 外连接查询
- 分布式MySQL美文
- iOS 操作sqlite3
- sqlite3使用简介
- 压缩Sqlite数据文件大小,解决数据删除后占用空间不变的问题
- SQLyog 使用介绍
- sql with as用法详解
- sqlite操作总结(一)
- 一个简单的从txt文件中读取数据插入数据库
- mySQL锁表
- SQLsever语句建立信息表
- Oracle EBS 公司间往来的解决方案
- 【DRP】将SQL脚本导入Oracle数据库并进行数据初始化
- wamp集成环境修改mysql的默认编码格式
- 数据库中行列转换
- 数据库快照的建立,并使用它恢复原数据库
- 练习. SQL--学生、教师、分数
- 不推荐使用sqlite3_get_table,而是使用sqlite3_prepare_v2替代
- mongodb 不重复添加数组方法