HTML5先行者高级交流群
欢迎加入学习讨论
专注前端,专注网页设计制作及网站开发项目 - (低价承接网站开发项目) QQ:370158739
加入收藏
RSS
首页
JS下载
CSS3手册
Json在线解析
html5教程
网站及特效实例
视频教程
html5资讯
网络编程
html5书籍
HTML5演示
论坛
入门教程
高级应用
滚动新闻
html5实验
javascript特效
Photoshop教程及网页素材
jquery特效
html5视频教程
CSS3视频教程
JS视频教程
JUQERY视频教程
Bootstrap视频教程
html5video
微信服务号开发教程
最新资讯
最新动态
IT动态
ASP编程
PHP编程
正则表达式
AJAX相关
ASP.NET
JSP编程
Flex
脚本加解密
网页编辑器
相关技巧
黑客相关
网页播放器
其它综合
java教程
您的位置
:
首页
>
网络编程
>
ASP编程
» 正文
关于ASP访问ACCESS数据的错误的探讨_ASP教程_编程技术
2013-12-20 08:56:44
[
小
大
]
已经帮助:
人解决问题
access|错误|访问|数据
前天,N久以前做的一个ACCESS数据库的程序出错了,程序都没有改动过,之前好好的,突然就不行了。
错误信息如下:
----------------------------------
Microsoft OLE DB Provider for ODBC Drivers 错误 ''80004005''
[Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 ''Temporary (volatile) Jet DSN for process 0x728 Thread 0x854 DBC 0x276fb44 Jet''。
----------------------------------
由于最近一台服务器被人攻击垮掉了正在重装,没时间理这个问题。后来在朋友(是该程序的用户哦)的多翻催促下,决定搞定它。
一开始,还真不摸不清是怎么回事。在GOOGLE上搜了很多,众说纷纭,过滤去一堆没有结果的垃圾信息,得到下面几个可能原因:
1。微软已经不更新ODBC,需要改用JET的方式连接ACCESS数据库文件;
2。系统目录的权限发生的变更。
也有老帖子说什么原因是:“ACCESS数据库文件是ACCESS97版本的”,这个无须考虑,我用的是ACCESS2000数据库。
对于第一个原因,原来的连接字串如下:
--ODBC连接方式------------------------
mdbpath=server.MapPath("my.mdb.asp")
CnnStr = "DBQ=" & mdbpath & ";DRIVER={Microsoft Access Driver (*.mdb)};uid=admin;pwd="
-------------------------------------
改用JET连接后连接字串为:
---JET连接方式---------------------
CnnStr = "Provider=Microsoft.Jet.OLEDB.4.0;User Id=admin;Data Source="& mdbpath &" '';Password=luntanbbs"
-------------------------------------
测试过后无效,虽然提示的错误信息有点不同:
----------------------------------
Microsoft JET Database Engine 错误 ''80004005'' 未指定的错误
----------------------------------
最后检查第二个原因:系统目录权限不足。经询问,原来由于出于安全的考虑一同事把该服务器的WINNT目录设置为 Administrators、system “完全控制”,users 只读。
但是,按道理,这样的权限设置,ODBC的驱动程序处于 winnt/system32/odbcjt32.dll 这个也是可读的,难道是因为缺少“执行”权限?
我把 winnt/system32/目录下所有以odbc开头的DLL文件全部授予“执行”权限,发现还是一样的错误信息。跟着我索性把整个 system32 目录设成 everyone 可执行,可是一测试依然不行。
难道是还有其他文件被ODBC或JET调用但又不在这个system32目录下且又没有得到充分授权而导致失败?
正在想的时候,蓦然瞥见 winnt/temp 目录。嘿,我把 temp 目录设置成 everyone 可“写入”看看。
一测试,嘿,成了。使用ODBC连接方式的程序,成功的读取更新ACCESS数据库中的记录。
有意思的是,使用JET连接方式的程序,却报另一个错误:
-------------------------------------------
Microsoft JET Database Engine 错误 ''80040e4d'' 无法启动应用程序。
工作组信息文件丢失,或是已被其它用户以独占方式打开。
-------------------------------------------
嘿嘿,不知道这个JET的错误又怎么回事呢?
有时间再搞搞它吧。如果你知道,请给我发个回复哦。
RPpHTML5中文学习网 - HTML5先行者学习网
RPpHTML5中文学习网 - HTML5先行者学习网
来顶一下
返回首页
(责任编辑:)
推荐书籍
推荐资讯
html5及css3做的3D小
html5视频应用
友情链接:
联系人:QQ370158739
关于HTML5先行者
-
联系我们
-
广告服务
-
友情链接
-
网站地图
-
版权声明
-
人才招聘
-
帮助