Dreamweaver做ASP数据库的几个常见问题

操作方法

  • 01

    网页三剑客以其简单易学迅速被广大爱好者所青睐,尤其是DW已成为初学者制作网站的首选工具。但我们在用DW制作ASP+access程序时,经常会出现这样或那样的错误,尤其是数据库方面显得特别突出。本文就此方面出现的一些常见的问题谈谈其原因及解决办法。 一、上传网页时出现如下错误:Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 此类错误出现的情况大多是在用DW建立站点时运行到下面的步骤时我们选择了第一项或第二项,如图一: 图一 1、当选择了第一项时,我们开发的ASP程序是在本地编辑和测试。在应用数据库时建立数据库连接大多采用的是DSN或自定义连接字符串 用DSN时如图二所示: 图二 DSN是用ODBC数据源管理器建立。我们知道DSN有用户DSN、系统DSN、文件DSN三种,其中用户DSN与系统DSN只能用于当前机器,不能为别的机器所用。而在用DW建立ASP程序时在上图的第二项只能显示系统DSN,因此当我们将ASP程序上传或到别的机器运行时便会出现上述问题。 用自定义连接字符串时如图三所示:图三 连接字符串包含 Web 应用程序连接到数据库所需的全部信息。 Driver 指定在没有为数据库指定 OLE DB 提供程序时所使用的 ODBC 驱动程序。 DBQ 是指向基于文件的数据库(如在 Microsoft Access 中创建的数据库)的路径。该路径是在测试数据库文件的服务器上的路径。 下面是一个连接字符串示例,它将创建与名为book.mdb 的 Access 数据库的 ODBC 连接:Driver={Microsoft Access Driver (*.mdb)};DBQ=d:\book\trees.mdb。Dreamweaver 在服务器端脚本中插入该字符串,以便应用程序服务器随后进行处理。当我们将ASP程序上传或到别的机器运行时如果测试的路径与连接字符串的数据库路径不一致时,便会发生上述问题。 2 当选择了第二项时,我们开发的ASP程序是在本地编辑,然后上传到远程服务器测试。建立数据库连接也采用的是DSN或自定义连接字符串,不同的是都采用的测试服务器上的DSN或连接字符串。当采用测试服务器上的DSN时同样也只能用系统DSN于是当到别和机器运行ASP程序时,也就产生了同样的问题。当采用自定义字符串时如果测试的路径与连接字符串的数据库路径不一致时,也会发生同样的问题。 从以上分析可知,要使自己用DW开发的ASP程序具有可移植性最好采用自定义字符串(也可采用文件DSN但对于初学者用自定义字符串容易些)。其具体情况如下: 对于建立站点时选择在本地编辑与测试,可采用此自定义连接字符串: Driver={Microsoft Access Driver (*.mdb)};DBQ=d:\book\trees.mdb(d:\book表示数据库文件的实际路径);D而对于在本地编辑然后上传到远程服务器测试,若要将非 DSN 连接字符串写入位于远程服务器,必须知道该文件的实际路径.如果不知道文件在远程服务器上的实际路径,则可以通过在连接字符串中使用 MapPath 方法来获取该路径。其自定义连接字符串为: 如果使用 VBScript 作为脚本撰写语言,连接字符串可表示如下:Driver={Microsoft Access Driver (*.mdb)};DBQ=” & Server.MapPath("/book/book.mdb");如果使用 JavaScript,表达式将基本相同,只是要使用加号 (+) 而不是 & 号来串联两个 字符串,连接字符串可表示如下:Driver={Microsoft Access Driver (*.mdb)};DBQ=” +Server.MapPath("/book/book.mdb")这样我们便可以顺利地移植ASP程序了(注意一定要将数据库文件上载到远程服务器。记下它的虚拟路径,例如”/book/book.mdb”,否则将会出错)。 其时很多时候当我们发现类似的错误提示都应该考虑到是否因为数据库连接产生了问题,如果是便可使用上述方法解决. 二、ADODB.Field (0x800A0BCD)BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。 这种错误常产生于网页之间传递数据.我们知道ASP应用程序时一般至少拥有二个或二个以上的Web页面,这时就得考虑在多个Web页面间传递数据的处理工作。网页间数据传递的常用方法有:URL方式、FORM方式、COOKIE、APPLICATION、SESSION。其中URL方式和form方式实现方法简单,可实现网页间的简单数据传递(也是我们初学者能快速掌握的)而且必须是连续访问两页面间数据传递。如在制作网站搜索引擎时,便要用到FORM方式传递参数。又如我们每每看一些网站在用户注册后,便可在下一个页面看出到用户的详细信息。但我们用DW制作类似的页面时则总出现这样的错误。这样的错误一般属于记录集(recordset)的问题.这类问题发生的原因,一般是执行了查询条件,但送回的结果却是空的,即没有符合查询条件的记录或是执行了循环,执行到第一个或是最后一个记录集的时候,没有及时终止循环,所以产生了错误。解决此问题就要用到网页间的数据传递,可用FORM参数、URL参数或阶段变量(如SESSION)来决定查询条件。 三、在DW中,因打开数据库造成的常见错误 1 在运行程序时,因打开数据库造成的错误 Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0xaa0 Thread 0x628 DBC 0x2e80064 Jet'。 2 在上传文件时,因打开数据库造成的错误,如图四所示:图四 四、不能更新。数据库或对象为只读/操作必须使用一个可更新的查询 (80004005) Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。 Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC Microsoft Access Driver] 不能更新。数据库或对象为只读。 1、最普遍的原因是匿名用户帐号(IUSR_MACHINE)对该数据库文件没有写权限。要解决这个问题,在管理器中调整数据库文件的属性,让匿名用户有正确的权限。当使用ACCESS数据库时,不仅要给文件写的权限,还要给该目录写的权限.在IIS里面,有一个设置,就是Web匿名访问用户,也就是大家熟悉的 IUSR_。给你的Access数据库文件增加 IUSR_ 的改写权限。 1) 这就是我们要用程序去操作的Access数据库文件 2) 右键 --> 属性:此文件的“安全”属性 3) 增加用户 IUSR_ 4) 设置 IUSR_ 对Access数据库文件的访问权限 这是设置好了的权限注意只给了 IUSR_ 的读、写权限哦。不要给 Everyone 权限,而且还要给执行(Execute) 权限,这样容易被人家上传了ASP木马,然后执行,你的系统最高级的权限就被入侵者获取了。 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、你是在同时更新两个表中的字段,也会出现这个错误信息,解决办法是分开来更新这两个表中各自字段。 5、当你使用了一个从低版本中(如ACCESS2.0,ACCESS7.0)载入到高版本(ACCESS 2000)中的查询时,在执行这个查询是会出现该错误。 五、Microsoft JET Database Engine 错误 '80040e09' 不能更新。数据库或对象为只读。 A: 未打开数据库目录的读写权限。 解决方法: ( 1 )检查是否在 IIS 中对整个网站打开了 “ 写入 ” 权限,而不仅仅是数据库文件。 ( 2 )检查是否在 WIN2000 的资源管理器中,将网站所在目录对 EveryOne 用户打开所有权限。具体方法是:打开 “ 我的电脑 ”---- 找到网站所在文件夹 ---- 在其上点右键 ---- 选 “ 属性 ”----- 切换到 “ 安全性 ” 选项卡,在这里给 EveryOne 用户所有权限。//本文来自电脑软硬件应用网www.45it.com 注意: 如果你的系统是 XP ,请先点 “ 工具 ”----“ 文件夹选项 ”----“ 查看 ”----- 去掉 “ 使用简单文件共享 ” 前的勾,确定后,文件夹 “ 属性 ” 对话框中才会有 “ 安全性 ” 这一个选项卡。 六、系统不能打开注册表关键字(8007000e) Microsoft OLE DB Provider for ODBC Drivers 错误 '8007000e' [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x11b4 Thread 0x1a4c DBC 0x9d34354 Jet'。 产生错误可能原因: 1.打开数据库时写法不对,标准的ACCESS数据库调用写法:(如果无法记清如何写,可利用DW的帮助) "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("db.MDB") 2. 正在上传数据库文件。 总之在用DW制作ASP网站时使用数据库比较容易出现错误,错误出现时一定要看清错误的类型,多加思考多请教一定会得到解决。

(0)

相关推荐

  • 如何使用DreamWeaver做框架

    Dreamweaver是一款所见即所得的网页制作软件:无需写太多代码就能让你做出漂亮的网页,当然,你还可以切换视图,只编辑代码也可以.dreamweaver不仅可以做静态网页,还可以做动态网页.下面分 ...

  • dreamweaver制作asp动态网页之制作搜索框

    前面给大家介绍了如何用dreamweaver向数据库里边插入数据并且显示出来(见笔者之前分享的),下面就以这个为基础给大家介绍一下如何用dreamweaver来制作搜索框搜索数据库里边的数据并且显示出 ...

  • Windows 2003 asp网页不能访问的常见问题

    今天去帮朋友设置服务器,操作系统为WIN2003,使用了IIS6.0,不过发现只能访问HTML的网页,ASP网页就访问不了,出现:您访问的页面不存在或无法访问之类的错误。。想了一下,确定不会是动态网页 ...

  • 怎么使用Dreamweaver做系统demo?

    在网站开发流程中,原型设计是必不可少的一环,用网站原型和客户讨论需求,客户方便易懂,可以达到事半功倍的效果. 下面教大家,使用Dreamweaver制作网站的demo的方法. 操作方法 01 第一步: ...

  • 怎么用Dreamweaver做网址超链接

    Dreamweaver是做网页的不错工具,很多前端开发者都在用.但是好多新手都不知道怎么用.下面小编就来说一下Dreamweaver的用法,其中之一就是加入超链接. 操作方法 01 首先我们双击打开D ...

  • 让Web服务器不再拒认ASP网页

    受ASP动态网页的吸引,笔者决定用Dreamweaver做一个ASP格式的学校主页.然而,当笔者将Web服务器中Htm格式的网页换成新做的ASP网页时却发现:新做的这些ASP网页在校园网内的所有计算机 ...

  • SQLServer2008数据库备份还原和数据恢复图文教程

    在完整恢复模式或大容量日志恢复模式下,必须先备份活动事务日志(称为日志尾部),然后才能在SQLServerManagementStudio中还原数据库。有关详细信息,请参阅如何备份事务日志(SQLSe ...

  • SQLServer2008数据库怎样备份还原和数据恢复

    在完整恢复模式或大容量日志恢复模式下,必须先备份活动事务日志(称为日志尾部),然后才能在SQLServerManagementStudio中还原数据库.有关详细信息,请参阅如何备份事务日志(SQLSe ...

  • 外网访问内网mysql数据库方法

    外网访问内网mysql数据库方法 mysql数据库服务器本机是动态公网IP. 如何实现外网访问mysql数据库. 解决方案,内网使用nat123动态域名解析,将域名实时固定解析到路由公网IP,然后在路 ...