MicrosoftOLEDBProviderforODBCDrivers错误80040e21系统环境
Windows server2003+IIS6+NTFS
ASP+Access
错误信息
Microsoft JET Database Engine 错误 '80004005' 未指定的错误
[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x474 Thread 0x290 DBC 0x79d024 Jet'.
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'
[Microsoft][ODBC Microsoft Access Driver]常见错误不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x1f0 Thread 0xd44 DBC 0x203e024 Jet'。
Provider 错误 '80004005' 未指定的错误
Microsoft JET Database Engine 错误 '80004005' 操作必须使⽤⼀个可更新的查询。
故障原因
此类错误⼀般出现于⽂件系统为NTFS格式中,是IIS匿名帐号(IUSR_计算机名)对相关⽂件、⽂件夹操作权限不⾜引起的。⼀、存放数据库⽂件夹对IIS匿名帐号没有写⼊、修改权限,错误表现为⽆法对数据库进⾏更新、写⼊
⼆、系统临时⽂件夹⽬录对IIS匿名帐号没有写⼊、修改权限,错误表现为访问服务器上任何采⽤Microsoft JET Database Engine 链接Access类数据库的⽂件都是出错。正常情况下是不会出现这个错误的,当使⽤某些系统垃圾清理优化⼯具、或其它⼀些因素可能会导致这个⽬录权限发⽣改变。所以请慎重使⽤此类⼯具。
解决办法
⼀、检查存放Microsoft Access数据库⽂件的⽂件夹是否有对IIS匿名帐号有写⼊权限,如果没有,请赋于写⼊权限,特别是当错误信息为(Microsoft JET Database Engine 错误 '80004005' 操作必须使⽤⼀个可更新的查询。)时。
微软jscript⼆、JET引擎在链接数据库的时候会在%windir%/temp/⽬录下创建临时⽂件,⽽IIS匿名帐号对%windir%/temp/⽬录操作权限不够,添加IIS匿名帐号(IUSR_计算机名)对%windir%/temp/的读写权限即可。
其它⼀些未指定的错误,可以尝试重新注册ASP脚本解释链接库⽂件。
依顺序运⾏以下命令:
3.iisreset
参考案例⼆:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'
多步 OLE DB 操作产⽣错误。如果可能,请检查每个 OLE DB 状态值。没有⼯作被完成。
当服务器尝试处理包含"更新记录"或"插⼊记录"服务器⾏为的页时,会出现此错误。数据库⽆法处理该服务器⾏为尝试执⾏的更新或插⼊操作。
可能的原因和解决⽅案如下:
该服务器⾏为正尝试更新数据库表的⾃动编号字段或者尝试在⾃动编号字段中插⼊记录。由于⾃动编号域由数据库系统⾃动填充,因此任何从外部⽤值填充这些域的尝试都会失败。
服务器⾏为正在更新或插⼊的数据对于该数据库字段⽽⾔是错误的类型,例如将⽇期插⼊布尔型(是/否)字段,将字符串插⼊数值字段,或者将格式不正确的字符串插⼊"⽇期/时间"字段。
今天在做Oracle ODBC连接操作的时候出现了以上错误,⽹上查到的东西先保存在这⾥,看看是否有⽤。某个项⽬的格式不对,特别是时间格式和数字格式,必须按格式填写,⼀些项⽬填写的内容不要超过字段的长度,检查⼀下⾃⼰输⼊了什么东西,同时检查⼀下⾃⼰增加的字段,有没有对输⼊端做格式化处理。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论