|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
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
注重:默许情形下,MODE 设置为 0(adModeUnknown),该值凡是答应更新。
3. 呈现此毛病的另外一个缘由是:在 ODBC 办理器中,DSN 的“选项”页中的“只读”设置能够被选中。
4. 最初一个成绩和替换办法合用于一切 SQL 数据源。违背数据库的援用完全性的 SQL 语句可以招致呈现此毛病。上面是一些最多见的掉败的查询:
• 个中最复杂的一组查询是以下您没法更改的查询:UniqueValue 属性设置为 Yes 的穿插表查询、SQL 传递查询、结合查询或更新(即生成表)操作查询。
• 另外一种十分罕见的缘由是联接包括的链接 ODBC 表的索引不是独一的。在这类情形下,SQL 没法包管表中的纪录是独一,该表中字段的值将随查询产生更改。
• 有一种缘由的确有牢靠的替换办法。假如您测验考试更新“一对多”查询的“一”方的联接字段,操作将会掉败,除非您启用级联更新。由于如许您就能够将援用完全性拜托给 JET 引擎。
ASP.NET和ASP的比较,技术上比较已经没什么可说的了.新一代在大部分程度来说当然是比旧一代好了. 关键看你对所做软件的理解了.因人而定.会写的话也可能比ASP.NET写得更有效率和更方便重用 |
|