国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 数据库 > access > 访问access提示不能打开注册表关键字

访问access提示不能打开注册表关键字

来源:程序员人生   发布时间:2014-01-17 09:28:41 阅读次数:3059次

  access 不能打开注册表关键字

  错误信息如下

  

  Microsoft OLE DB Provider for ODBC Drivers 错误

  [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 Temporary (volatile) Jet DSN for process x Thread x DBC xfb Jet

  

  下面几个可能原因

  微软已经不更新ODBC需要改用JET的方式连接ACCESS数据库文件;

  系统目录的权限发生的变更

  也有老帖子说什么原因是“ACCESS数据库文件是ACCESS版本的”这个无须考虑我用的是ACCESS数据库

  对于第一个原因原来的连接字串如下

  ODBC连接方式

  mdbpath=serverMapPath("mymdbasp")

  CnnStr = "DBQ=" & mdbpath & ";DRIVER={Microsoft Access Driver (*mdb)};uid=admin;pwd="

  

  改用JET连接后连接字串为

  JET连接方式

  CnnStr = "Provider=MicrosoftJetOLEDB;User Id=admin;Data Source="& mdbpath &" ;Password=luntanbbs"

  

  测试过后无效虽然提示的错误信息有点不同

  

  Microsoft JET Database Engine 错误 未指定的错误

  

  最后检查第二个原因系统目录权限不足经询问原来由于出于安全的考虑一同事把该服务器的WINNT目录设置为 Administratorssystem “完全控制”users 只读

  但是按道理这样的权限设置ODBC的驱动程序处于 winntsystemodbcjtdll 这个也是可读的难道是因为缺少“执行”权限?

  我把 winntsystem目录下所有以odbc开头的DLL文件全部授予“执行”权限发现还是一样的错误信息跟着我索性把整个 system 目录设成 everyone 可执行可是一测试依然不行

  难道是还有其他文件被ODBC或JET调用但又不在这个system目录下且又没有得到充分授权而导致失败?

  正在想的时候蓦然瞥见 winnttemp 目录我把 temp 目录设置成 everyone 可“写入”看看

  一测试成了使用ODBC连接方式的程序成功的读取更新ACCESS数据库中的记录

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生