ACCESS数据库操作‘必须使用一个可更新的查询’解决方案5月27号,接到天津分公司用户反映,生产开发专业系统文件上传报错,文件上传失败,错误信息如下:MicrosoftJETDatabaseEngine(0x80004005)操作必须使用一个可更新的查询/scb-scgl/admin_news_addok.asp,第178行经过我的仔细排查,报错代码行无错误,数据库连接正常,文件确实没有存到指定路径,数据库也没有更新数据。反复测试,试图找到问题所在而未果。为尽快解决问题,我多方查找资料,终于在百度知道的一则问答中受到启发最终找到答案。问题分析:一般在Windowsxp与windows2003server系统下,文件目录的只读属性会影响网站程序写数据库操作,即使用户已经去掉其只读属性,但是之后只读又失效,导致许多网站不能正常运行。事实上,网站程序目录读写权限才是影响其运行的根本原因。所以只读属性能否去掉并不重要,只需要把相应目录赋予读写权限即可。1、在通常情况下,Web应用程序只读属性并不影响Web系统运行。在需要写入、更新数据库时,Web程序操作数据库因权限不够会提示操作必须使用一个可更新的查询。这种情况可能会在NTFS分区环境下出现,FTA32一般分区不会出现。将Web应用程序放在FTA32分区下运行时,不会出现因权限等问题而导致系统不能正常运行的情况,但是其安全性不如NTFS好。因此,一般网站软件可在FTA32下测试运行,单位正式网站软件建议放置在NTFS下运行。2、现以XP环境下,NTFS格式为例。进入网站根目录,工具—>文件夹选项—>查看,将“使用简单文件共享”前的勾选去掉。3、网站根目录赋予Everyone完全控制、读写权限。下面以一个例子更详细的介绍解决此类问题的方法和过程出错举例:MicrosoftJETDatabaseEngine(0x80004005)操作必须使用一个可更新的查询。/LeadBBS/inc/Board_Popfun.asp,第569行需要权限:服务器管理员,否则联系服务器管理员进行示例操作系统:Windows2000Server1.找到你存放网站的文件夹,比如你的网站存放在D:\WEB\News.com右键点击文件夹,选择属性2.出来新窗口,选择安全,点击按钮添加(D)3.在出来的窗口中,找到IUSER_开头的名称,并双击,点击确定.4.确定后的结果是这个窗口,在安全的名称列表中多了刚才选择的用户点击下面的按钮高级(V)5.在弹出的新小窗口中,继续点击查看/编辑(V)按钮6.出来新窗口..7.重新选择权限分配.8.点击应用完成设置根据上述方法我对系统存放文件夹的访问权限进行调整后,报错消失,上传恢复正常。以上只是我在工作中一点点小发现,拿出来与大家共享,希望能为更好的服务用户提供小小帮助。