DW做ASP程序时关于数据库的几个常见问题
- 格式:doc
- 大小:105.00 KB
- 文档页数:4
运行ASP时的常见错误类型和排解方法由于ASP仍然是当前比较流行的网站编辑语言,而且相对于其它几门语言,它简单易用。
因为简单,所以许多开发者也不会去思考错误处理,但错误处理不仅能培养良好的编程习惯、使程序完美,而且可以防止不必要的数据暴露,保证网站安全。
ASP主要有以下三种错误类型:1、编译错误:这种错误出现一般都是代码的语法问题。
因为编译错误而导致ASP停止运行。
错误类型:ADODB.Field (0x800A0BCD)BOF 或EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
原因:你在利用SQL查找数据库的记录时,查找结果为空,而且你没有对空记录的情况做出处理。
解决:1如果你不相信查找结果为空,那你应该考虑你的SQL语句是否正确;2如果确实有空的情况,那你应该添加”if rs.eof then”或者”do while not rs.eof”之类的语句,对eof的情况进行处理。
错误类型:(0×80020009)发生意外。
原因:也是在利用SQL查找数据库记录时,查找结果为空,而且你在后面的代码中调用了rs(“aa”)之类的记录解决:要么同上,加上rs.eof的判断和处理,要么就是你的SQL语句有误,导致记录查不出来,也就无法在后来使用rs(“aa”)的记录了。
错误类型:Active Server Pages, ASP 0126 (0×80004005)找不到包含文件…xxx.asp'。
原因:就如错误提示所说,不存在这个包含文件。
解决:如果你确定有这个文件,那么就是你的路径写错了,比如说其实他相对于网站根目录的路径应该是inc/xxx.asp,那么include里面就应该写inc/xxx.asp,而不仅仅是xxx.asp。
错误类型:Microsoft OLE DB Provider for ODBC Drivers (0×80004005)[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。
Dreamweaver 中ASP编程典型错误与解决方法一、名称重定义错误提示:解决方法:去掉其中一个变量的定义,即只定义一次变量即可。
二、vbscript语句错误表现:三、数据库错误解决方法:关闭用ACCESS打开的数据库即可解决四、内部服务器错误表现:这类错误一般是由代码错误或语句错误或语句排列顺序引起的,如下例:解决方法:将图中蓝色光带部分挪到<body>标签下面即可。
五、代码中指明打开的窗口无法打开表现:</script>缺失,加上即可,如下图:网页在IE中预览后出现乱码七、没有打开表造成的错误解决方法:打开表,如下图:八、没有打开数据库造成的错误,特别是由于临时编写代码,在文件顶部加了代码,结果造成没有打开数据库就在使用记录集、SQL等问题。
九、浏览器提示语句未结束:其根本原因在于,忘记了SQL语句中的单引号、双引号、&的使用规则。
改正即可。
dim rssc,sqlscset rssc=server.CreateObject("adodb.recordset")sqlsc="select * from shangpin where s_name in ( select s_proname from shoucang where s_username='"&request.cookies("shop")("username")&"')" rssc.open sqlsc,conn,1,1十、BOF错误等这类错误一般是由于没有正确地发送有关参数(如ID、name)造成的,特别是没有正确地定义变量,从而造成从数据库中找不到相关信息。
十一、dreamweaver配置的网站错误,打不开。
由于没有用到DNS,所以用了localhost,所以出错了。
在WINDOWS7或SERVER2008上安装了IIS7.5,调试ASP程序时出现以下错误:An error occurred on the server when processing the URL. Please contact the system administrator解决方法如下:设置方法一:以管理员身份运行CMD,将目录定位到%windir%\system32\inetsrv\,然后执行appcmd set config -section:asp -scriptErrorSentToBrowser:true。
%windir%\system32\inetsrv\appcmd set config -section:asp-scriptErrorSentToBrowser:true设置方法二:打开IIS7的asp设置,展开“调试属性”选项,“将错误发送到浏览器”这项默认的是False,改为True,然后点右侧的应用!如图所示:通过以上设置后,再从浏览时打开出错ASP页面时就能看到页面出错的详细信息,方使调试。
如果是公开的Web服务器建议不要打开此选项,以防出错信息被他人利用。
ADODB.Connection错误'800a0e7a'未找到提供程序。
该程序可能未正确安装。
/hua1/manage/inc/conn.asp,行8咋一看貌似是数据库连接的问题,但是我反复看了数据库的连接代码没有错误;接下来就换到自己的机器上运行网站,程序运行正常;所以,得出的结论是:网站程序正常。
那接下来要考虑的问题就是机器环境配置的问题,是不是服务器软件的问题,本机装的是win7的IIS,仔细看了下IIS的配置暂时没发现问题。
为了进一步确定是不是服务器软件的问题就打算换个服务器软件AMPserv 5.2.6 结果被杀毒软件给阻止了部分东西,于是有点生气就不想弄了,又回到了研究IIs的路上。
数据库操作中的常见问题与解决方法随着互联网和大数据时代的到来,数据库的应用越来越广泛。
然而,用户在进行数据库操作时,常常会遇到一些问题,例如数据丢失、查询速度慢等等。
下面将介绍数据库操作中常见的问题,并提供解决方法。
1. 数据库连接问题在使用数据库之前,首先需要建立数据库连接。
一些常见的连接问题包括无法连接到数据库、连接池满了或者连接超时等。
解决方法如下:- 检查数据库服务器是否处于运行状态,确保数据库服务器已经启动;- 检查数据库服务器的网络配置,确保网络连接正常;- 检查连接池配置,增加连接池容量或调整超时时间;- 检查数据库驱动版本是否匹配,如果不匹配,则更新数据库驱动。
2. 数据库备份与恢复问题数据库备份是数据安全的关键步骤之一,而数据恢复是避免数据丢失的有效手段。
然而,备份与恢复时可能会遇到以下问题:- 备份文件的存储空间不足。
解决方法是定期清理旧的备份文件或增加存储空间;- 恢复失败。
解决方法是检查备份文件是否完整,或者使用备份软件提供的日志文件进行恢复。
3. 数据库性能问题数据库性能是保持系统高效运行和快速响应用户请求的关键。
常见的性能问题包括查询速度慢、数据量过大等。
解决方法如下:- 索引优化。
使用合适的索引可以提高查询速度,但过多的索引会增加写操作的开销。
定期检查并调整索引是保持数据库性能的重要措施之一;- 查询优化。
避免不必要的查询,使用合适的查询条件和限制返回的结果集大小;- 数据库分片。
如果数据量过大,可以考虑进行数据库分片以分担负载。
4. 数据库安全问题数据安全是数据库操作中一个重要的方面。
常见的安全问题包括数据泄露、非授权操作等。
解决方法如下:- 加密敏感数据。
针对敏感信息,可以使用加密算法对数据进行加密,以保护数据的安全性;- 数据库访问控制。
设置合适的用户权限和角色管理,限制非授权用户的访问权限;- 定期审计。
定期检查数据库日志,及时发现并处理潜在的安全问题。
5. 数据库事务问题事务是保持数据库的一致性和完整性的重要机制。
dreamweaver连接数据库典型问题解决方法[多图]∙先看第一个问题,错误如下“http错误404 无法找到文件。
∙∙1)在该服务器机器上没有测试服务器运行。
2)为该站点指定的测试服务器没有映射到http://localhost/_mmserverscripts/MMHTTPDB.aspURL.请确认url前缀映射到了您站点的根上.”但是此时IIS服务器是运行正常。
出现此问题的原因是站点的测试根目录使用了localhost,只要改为其他任何地方都行。
但是要注意在Dreamweaver和IIS中使用相同的设置(此处假设为chinese),则Dreamweaver测试服务器URL前缀使用http://localhost/chinese/。
IIS设置的时候使用别名用刚才的chinese,其他均按照平常的设置。
此时,你会发现在Dreamweaver中可以使用F12预览网页。
再使用自定义连接字符串就成功了。
∙再看第二个问题,“使用测试服务器上的驱动”测试时能够“成功创建连接脚本”,但是在绑定的时候,却找不到数据库中的表。
提示“无法从该连接检索表格...”在“使用本地服务器上的驱动”测试的时候,提示“指定初始化字符串不符合OLE DB规定”使用DSN的时候没问题.这个问题比较好解决,是因为使用XP-SP2后的兼容问题。
1.下载插件/pub/dreamweaver/extensions/SP2DBFix1.0.2.mxp并安装启动插件。
2.在Dreamweaver中打开之前连接时候的那个文件,「站点」→「高级」→「移除连接脚本」.3.删除之前连接产生的文件夹Connections和_mmServerScripts.重新连接就可以了不过这里有个很奇怪的问题,我在另外一台机器上安装插件并启动后仍然无法正常,提示“HTTP错误405 不允许使用该方法”和“发生一个错误,无法上传MMHTTPDB.asp.另一个程序正在使用此文件,进程无法访问”,反而是关闭后才成功的。
/download/info /1701.htm/Program/Asp/112 TM562008.html<%dim ConnStringset conn=server.CreateObject("adodb.connection")ConnString="provider=microsoft.jet.oledb.4.0;data source=" & server.MapPath("#kucun.mdb") conn.open ConnString'连接数据库%>2000下使用asp访问数据库时,在conn.open始终发生8007007f错误,重装IIS和access均得不到解决。
我在网上查到的解决办法是将oledb32.dll 解压到以下两个目录,然后重启服务器:1) C:\WINNT\system32\dllCache2) C:\Program Files\Common Files\System\OLE DB<%dim conn,exec,rsset conn=server.createobject("adodb.connetion")conn.open "driver={microsoft access driver(*.mdb)};dbq="&server.mappath("show.mdb")exec="select * from list"set rs=server.createobject("adodb.recordset")rs.open,exec,conn,1,1%>ASP中连接数据库的错误解决新解决办法Provider 错误80004005 未指定的错误的新解决办法.这两天运行的好好的点击统计程序突然出错了,显示的就是:------------------------------------------Provider 错误80004005未指定的错误------------------------------------------在网上找了一大圈,发现大家提供的办法我都试过了,没有一个有作用的.方法有以下:1.开始运行regsvr32 jscript.dll (命令功能:修复Java动态链接库)开始运行regsvr32 vbscript.dll(命令功能:修复VB动态链接库)开始运行iisreset (命令功能:重启IIS)开始运行msjetoledb40.dll2.给系统临时文件夹%windir%/temp/ 加上IUSR_COMPUTER 用户的读写权限3.ASP连接Access数据库的时候,如果频繁刷新页面,出现80004005 未指定错误,数据库不能连接,但是过大约10多分钟后再刷新就可以连接。
下面是虚机维护中,经常碰到的一些ASP程序中的数据库调用的错误,现收集整理如下:ADODB.Recordset 错误 '800a0bb9'变量或者类型不正确,或者不在可以接受的范围之内,要不就是与其他数据冲突。
产生错误可能原因:1.这个错误多出现在类似语句处:“rs.Open sql,conn,1,1”,原因是数据库连接conn对象未打开。
――――――――――――――――――――――――――――――――――――不能打开注册表关键字(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数据库调用写法:"driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("db.MDB")2. 正在上传数据库文件。
――――――――――――――――――――――――――――――――――――参数不足,期待是 1 (80040e10)Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e10'[Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。
产生错误可能原因:1.打开数据的SQL查询语句WHERE后面条件子句有问题,一般是缺少逻辑比较符号或者是字段名不正确。
ASP数据库连接设置问题的解决方法.txt如果你同时爱几个人,说明你年轻;如果你只爱一个人,那么,你已经老了;如果你谁也不爱,你已获得重生。
积极的人一定有一个坚持的习惯。
ASP数据库连接设置问题的解决方法1 设置问题制作动态网页时,通常,需要与数据库建立连接。
是:第一步,在“ODBC数据源管理器”对话框“系统DSN(Data Source Name)”选项卡的“系统数据源”列表框中,添加新的“系统数据源(DSN)”。
第二步,为站点建立数据库连接。
在站点的“connections”子目录中,创建一个辅助ASP文件,文件名与“连接名称”相同,如,tz.asp。
该文件的内容如下<%' FileName="Connection_odbc_conn_dsn.htm"' Type="ADO"' DesigntimeType="ADO"' HTTP="false"' Catalog=""' Schema=""Dim MM_tz_STRINGMM_tz_STRING = "dsn=tz;"%>注:其中tz就是连接名称。
此后,凡是调用数据库数据的动态网页的开头,均包含上述语句。
一般说来,使用此种方法制作的动态网页,上传到网络服务器上后,均不能正常显示。
因为,普通一般用户是无法设置网络服务器的DSN。
2 解决问题的方法解决问题的方法是:涉及数据库的动态网页用Dreamweaver MX提供的方法制作完成后(且用PWS或IIS调试成功),再用下述语句<%dim conndim MM_tz_STRINGMM_tz_STRING="DBQ="+server.mappath("database/tz.mdb")+";DefaultDir=;DRIVER={Micr osoft Access Driver (*.mdb)};"set conn=server.createobject("ADODB.CONNECTION")conn.open MM_tz_STRING%>替代那个辅助网页tz.asp中的原有语句即可!注意以下几点:1、数据库放置的目录,上述语句中表明tz.mdb数据库,存放在当前网页所在目录的子目录(database)中。
DW做ASP程序时关于数据库的几个常见问题2006-07-06 09:05作者:黄英出处:天极网责任编辑:龙犊网页三剑客以其简单易学迅速被广大爱好者所青睐,尤其是DW已成为初学者制作网站的首选工具。
但我们在用DW制作ASP+ac ces s程序时,经常会出现这样或那样的错误,尤其是数据库方面显得特别突出。
本文就此方面出现的一些常见的问题谈谈其原因及解决办法。
一、上传网页时出现如下错误: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 = adModeReadWriteConn.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 用户所有权限。
注意: 如果你的系统是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. 正在上传数据库文件。