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

供稿:hz-xin.com     日期:2025-01-19
Microsoft JET Database Engine 错误 '80004005' 未指定错误,求指导解决

故障原因
此类错误一般出现于文件系统为NTFS格式中,是IIS匿名帐号(IUSR_计算机名)对相关文件、文件夹操作权限不足引起的。
一、存放数据库文件夹对IIS匿名帐号没有写入、修改权限,错误表现为无法对数据库进行更新、写入
二、系统临时文件夹目录对IIS匿名帐号没有写入、修改权限,错误表现为访问服务器上任何采用Microsoft JET Database Engine 链接Access类数据库的文件都是出错。正常情况下是不会出现这个错误的,当使用某些系统垃圾清理优化工具、或其它一些因素可能会导致这个目录权限发生改变。所以请慎重使用此类工具。

解决办法
一、检查存放Microsoft Access数据库文件的文件夹是否有对IIS匿名帐号有写入权限,如果没有,请赋于写入权限,特别是当错误信息为(Microsoft JET Database Engine 错误 '80004005' 操作必须使用一个可更新的查询。)时。

二、JET引擎在链接数据库的时候会在%windir%/temp/目录下创建临时文件,而IIS匿名帐号对%windir%/temp/目录操作权限不够,添加IIS匿名帐号(IUSR_计算机名)对%windir%/temp/的读写权限即可。

其它一些未指定的错误,可以尝试重新注册ASP脚本解释链接库文件。
依顺序运行以下命令:
1.regsvr32 jscript.dll
2.regsvr32 vbscript.dll
3.iisreset

故障原因
此类错误一般出现于文件系统为NTFS格式中,是IIS匿名帐号(IUSR_计算机名)对相关文件、文件夹操作权限不足引起的。
一、存放数据库文件夹对IIS匿名帐号没有写入、修改权限,错误表现为无法对数据库进行更新、写入
二、系统临时文件夹目录对IIS匿名帐号没有写入、修改权限,错误表现为访问服务器上任何采用Microsoft JET Database Engine 链接Access类数据库的文件都是出错。正常情况下是不会出现这个错误的,当使用某些系统垃圾清理优化工具、或其它一些因素可能会导致这个目录权限发生改变。所以请慎重使用此类工具。

解决办法
一、检查存放Microsoft Access数据库文件的文件夹是否有对IIS匿名帐号有写入权限,如果没有,请赋于写入权限,特别是当错误信息为(Microsoft JET Database Engine 错误 '80004005' 操作必须使用一个可更新的查询。)时。

二、JET引擎在链接数据库的时候会在%windir%/temp/目录下创建临时文件,而IIS匿名帐号对%windir%/temp/目录操作权限不够,添加IIS匿名帐号(IUSR_计算机名)对%windir%/temp/的读写权限即可。

其它一些未指定的错误,可以尝试重新注册ASP脚本解释链接库文件。
依顺序运行以下命令:
1.regsvr32 jscript.dll
2.regsvr32 vbscript.dll
3.iisreset

解决IIS目录权限问题[Microsoft OLE DB Provider for ODBC Drivers (0x80004005)]

错误类型一:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] 不能更新。数据库或对象为只读。
错误类型二:
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''。

当你使用ASP连接数据库时可能会出现这种情况,为什么呢?因为您数据库文件所在的目录权限对特定的用户没有开启足够的权限,你只能进行只读访问,一般出现这种情况的文件系统为NTFS,那怎么解决呢?
首先,你找到数据库所在目录,也可以是上层目录,然后设置文件夹 安全属性,最简单的是把everyone的权限设置成完全即可,那对于这个问题,应该使哪个对象的权限设置成完全呢?答案是 IUSER_您的机器名。这个是哪个对象?这个是Internet来宾用户,有兴趣的读者可以查阅相关资料。至此,问题解决,你可以再运行一下看看是否解决了问题。

附:对于Windows XP的用户,也许你会茫然于更改文件夹的安全属性。因为在默认情况下,Windows XP使用了简单文件共享方法,所以,当你点 属性 的时候是看不到 安全 选项卡的。具体操作如下:
我的电脑-->文件夹选项-->查看-->取消 使用简单文件共享(推荐) 的勾选 即可。你查看一下你要更改文件夹的属性,是不是多了一个 安全 选项卡呢?

好了,自己试下吧~很简单。

CreateObject("adodb.connection")
dbq="Provider=Microsoft.Jet.OLEDB.4.0;Data
Source="&Server.MapPath("data/#mymanage.asp")
conn.open
dbq
%>
其中字符缺少.
语句缺少,你看看资料.
1、connstr=
"Provider=Microsoft.Jet.OLEDB.4.0;"
&
_
"Data
Source=c:\somepath\myDb.mdb;"
&
_
"User
Id=admin;"
&
_
"Password="
conn.open
connstr
2、Connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data
Source="
&
Server.MapPath("date/fghsdf.mdb")
conn.open
Connstr
3、Connstr
=
"driver=;pwd=123"
dbc.open
Connstr
&
";dbq="
&
Server.MapPath("date/fghsdf.mdb")
会不会?
进控制面板-》管理工具-》数据源-》系统DSN
然后添加Microsoft
Access
Driver(*.mdb),然后点选择找到你的数据库,数据源名字就是起上面代码里的wodebbs,当然你可以换个名字

楼主使用了盗版而且是太监版的操作系统,鉴定完毕。

建议重装系统。或者找个系统盘修复一下试试。

或许是程序错误,写个最简单的连接看看
或许是没启用父路径

winxp系统中打印机无法使用提示无法设置默认打印机怎么办
2.重启电脑,用其它管理员帐号登录电脑,将该帐号重命名。3.打开“我的电脑”,并进入系统分区,打开个人帐号目录,如C:\\DocumentsandSettings;4.如上图,将有问题的帐号重命名,注意不是删除。5.或者进入该帐号,将其下的“NTUSER.DAT”和“NTUSER.DAT.LOG”文件都删除掉。6.重命名该帐号或删除这...

得到mdb数据库指定表的某行然后写入
MyConStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\\db.mdb"conn2.open MyConStr '建立数据库连接 sqlstr="update dat set 返回时间= '" & t & "' where 派单编号='" & textv & "' " '语句 conn2.Execute sqlstr set conn2=nothing errmsg:if err.nu...

c#怎么访问加密的access,,我已经吧原来的数据库进行了加密
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\mydatabase.mdb;User Id=admin;Password=;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\mydatabase.mdb;Jet OLEDB:Database Password=MyDbPassword;Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\myFolder\\myAccess2007file.accdb;Persist...

vb中怎样把ADO所连接的数据库中的内容查询出来并在DATAGRID中显示出来...
'给你代码参考:'比如说你要查询资料栏位"姓名"等于text1.text就显示在DataGrid ADODC1.ConnectionString = "provider=Microsoft.jet.OLEDB.4.0;Persist security info= False; Data source=" & App.Path & "\\数据库名称.mdb"ADODC1.CommandType = adCmdText ADODC1.RecordSource = “select * from ...

Microsoft JScript 编译错误 错误 '800a03ec'
我平时用的是VBS,而你有的是JS,JS的语句是用分号结束的,你试试在最后那个双引号前或者后加个分号吧,(应该是加在后面吧?)我对JS也不是很熟悉。

属于WORD文件,文本文件,音频文件,视频文件,EXCEL工作簿文件什么_百度知 ...
DAT DAT File DBL 64 bit Doubles file DCS 数据库内容源 DCX DCX 图像文档 DER 安全证书 application\/x-x509-ca-cert DESKLINK DESKLINK File DIB ACDSee DIB 图像 image\/bmp DIC 文本文档 DIF Microsoft Office Excel 数据交换格式 application\/vnd.ms-excel DISCO DISCO File DIVX DIVX File DLL 应用程序...

文件格式、后缀名、图片格式详解?
.ACA:Microsoft的代理使用的角色文档.acf:系统管理配置.acm:音频压缩管理驱动程序,为Windows系统提供各种声音格式的编码和解码功能.aif:声音文件,支持压缩,....dat:VCD中的图象声音文件,VCD播放软件可调用,或是通过VCD机播放.dbf:数据库文件,Foxbase,Dbase,Visual FoxPro,等数据库处理系统所产生的数据库文件.dcx:...

实时错误'3219':此环境中不允许操作 datRecord.RecordSet.Close这一...
你看看在这之前你的conn 有没有关闭,就是数据库已经关了,再打开需要重新链接 conn.close() set conn=nothing

用sql查询如何打开access数据库?
你后面没有跟表名。。。select * from OPENDATASOURCE ('MICROSOFT.JET.OLEDB.4.0','Data Source="D:\\nyy\\nyyadmin\\web\\bonus\\20100714.dat";User ID=Admin;Password=abc123')..表名 就可以了。你的语句是对的。

如何创建一个access数据库
Access 为新数据库提供了Dat abasel.accdb 的默认名称。需确保提供的名称可以识别。在图右中,新的数据库命名为教务信息管理.accdb (扩展名.accdb 为可选项,这是因为在未提供扩展名时, Access 将自动提供扩展名)。创建完新的数据库后, Access 将自动打开该数据库。图右 在"空白数据库" 区域的"...