标题: ASP网页设计ASP 前往“Operation Must Use an Upda... [打印本页] 作者: 金色的骷髅 时间: 2015-2-3 23:31 标题: ASP网页设计ASP 前往“Operation Must Use an Upda... ASP一般认为只能运行在IIS上,正如前面所提到的,这并不是十分正确,事实上,ASP也能运行在Apache上。Apache ASP可在任意Apache服务器上运行有限的ASP功能,所需做的,只需打开mod_perl。毛病 症状
当您将 ActiveX 数据对象 (ADO) 与 Active Server Pages (ASP) 一同利用时,能够会碰到以下罕见毛病:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] Operation must use an updateable query.
缘由
本文论述招致此毛病的四种次要缘由及响应的替换办法。虽然本文会商的是 Microsoft Access 数据库,但此处供应的信息也合用于其他类型的数据库。
处理计划
当您的剧本试图履行更新或履行会更改数据库中的信息的其他某种操作时,凡是会碰到此毛病。呈现此毛病的缘由是 ADO 因为以下某种缘由而没法写入数据库:
1. 最多见的缘由是 Internet 宾客帐户(IUSR_MACHINE,默许情形下该帐户属于“Everyone”组)对数据库文件 (.mdb) 没有写权限。要处理此成绩,请利用 Explorer 中的“平安”选项卡来调剂此文件的属性,以便 Internet 宾客帐户具有准确的权限。
注重:在将 Microsoft Access 数据库与 ADO 一同利用时,还必需授与 Internet 宾客帐户对包括 .mdb 文件的目次的写权限。这是由于 Jet 会创立一个用于处置数据库锁定的 .ldb 文件。因为 Jet 能够会在“Temp”目次中创立一时文件,因而您能够还需求授与对该文件夹的读/写权限。
2. 呈现此毛病的第二个缘由是数据库不是利用具有写权限的准确形式翻开的。假如您对 Connection 对象履行 Open 操作,则应利用 Mode 属性唆使对该毗连所具有的权限,以下所示:
SQL = "UPDATE Products Set UnitPrice = 2;"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Mode = 3 '3 = adModeReadWrite
Conn.Open "myDSN"
Conn.Execute(SQL)
Conn.Close