ASP中数据库调用时常见错误的现象和解决
- 格式:doc
- 大小:37.00 KB
- 文档页数:5
运行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,所以出错了。
在ASP中常见的错误80004005信息和解决办法错误信息(错误信息我不用翻译成中文了吧,呵呵,大家谅解)Microsoft OLE DB Provider for ODBC Drivers error '80004005'[Microsoft][ODBC Microsoft Access 97 Driver] The Microsoft Jet database engine cannot open the file '(unknown)'. It is already opened exclusively by another user, or you need permission to view its data.原因:这个错误发生在当IIS使用匿名帐号(通常是IUSR)时,该帐号在NT中对数据库所在的目录没有正确的权限.(这就是为什么在Win95和PWS下没问题,因为win95根本就没有目录权限这一说)检查文件和目录的权限. 确定你能够在该目录中有能够新建和删除临时文件的权限。
这些临时文件其实是数据库建立在同一个目录下的文件, 但是要注意的是,有可能这些文件也可能建立在别的目录,例如 /Winnt.使用NT的文件监视程序监视文件失败时到底是访问了什么目录。
这个NT的文件监视程序可以在这个地方下载.如果你对数据库使用了一个网络地址,例如映射地址,就要检查一下共享文件和目录的权限,还要检查一下数据源文件(DSN)是否被别的程序标志成为正在使用中,这些别的程序一般是Visual InterDev,关闭任何一个InterDev中的正打开和数据库连接的项目。
这个错误还可能发生在这种情况:如果在DSN中使用了一个UNC路径(就是通用命名协议),请改用本地路径进行测试,因为如果对本地数据库使用UNC也可能出错。
还可能发生在这种情况,如果服务器要访问Access中的一个表,而这个表却联接在一个网络服务器上。
Asp连接access数据库时,报未知错误及错误码-2147467259的解决方案Asp连接access数据库时,报未知错误及错误码-21474672 59的解决方案ASP程序连接access数据库的代码如下:<%set conn=server.createobject("adodb.connection")'连接数据库的方法1:使用oledbstr="provider=microsoft.jet.oledb.4.0;data source=" & server.mappath("学习.mdb")conn.open str%>结果在服务器上运行该程序时提示如下错误:err.Number显示的是-2147467259,err.Description显示的是“未知错误”迷惑了很久,当时在课堂上一直找不到原因。
之前运行其他ASP 程序都是好好的,一遇到数据库就出错了。
很尴尬,跟学生解释说服务器出了点小问题,随后我解决了再告诉大家。
硬着头皮接着讲课,其实很心虚。
一下课,猛蹬着自行车回到家中,立马上网搜索答案。
找了很久,决定下次上课试试这些方法行不行。
下次上课我提早到教室。
心说这次解决不了那以后就回机房上课好了。
结果一次就成功了!欢呼!解决方案:为”C:\Windows\T emp“目录添加用户Authenticated Users,为该用户开放所有权限。
(1)WindowsXP、Windows 2003用户请在“C:\Windows\T emp”目录添加一个有权限的“Authenticated Users”用户即可!Vista用户请在“C:\Windows\ServiceProfiles\NetworkService\AppData\Local\T emp”目录添加一个有权限的“Authenticated Users”用户即可!具体设置权限步骤:右击T emp文件夹,选择“属性”->“安全”->“编辑”->“添加”,在下面的“输入对象名称来选择”中输入Authenticated Users,确定-> 返回到“Temp 的权限”,将Authenticated Users的权限中的完全控制给勾上。
【标题】常见错误,原因及解决方法【错误提示】异常详细信息: .WebException: 请求因HTTP 状态401 失败:Unauthorized。
源错误:行35:[System.Web.Services.Protocols.SoapDocumentMethodAttribute("/HelloWorld", RequestNamespace="/", ResponseNamespace="/", Use=System.Web.Services.Description.SoapBindingUse.Literal,ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]行36:public string HelloWorld() {行37:object[] results = this.Invoke("HelloWorld", new object[0]);行38:return ((string)(results[0]));行39:}【原因分析】1、用的是windows2003,.net framework1.1,.net20032、应该有权限访问,因为原来用程序是可以的,现在用IE 去访问还是可以的,但程序不行;3、iis 没有什么异常,从iis 里面直接浏览调用web 方法没有问题;4、认证方式没有改变一直用的都是windows,改成none 也不行;5、一开始就安装了WSE1.1,是可以的,后来升级到WSE2.0,就不行了,然后卸载了WSE2.0,装上WSE2.0 SP1 还是不行,后来又卸载掉WSE2.0 SP1 还是不行,再重装WSE2.0 SP1 还是不行,不得其解,现在试试卸载掉WSE2.0 SP1 重新用WSE1.1 看行不行,请各位多多帮忙啊。
Asp连接access数据库时,报未知错误及错误码-2147467259的解决方案Asp连接access数据库时,报未知错误及错误码-2147467259的解决方案ASP程序连接access数据库的代码如下:<%set conn=server.createobject("adodb.connection")'连接数据库的方法1:使用oledbstr="provider=microsoft.jet.oledb.4.0;data source=" & server.mappath("学习.mdb")conn.open str%>结果在服务器上运行该程序时提示如下错误:err.Number显示的是-2147467259,err.Description显示的是“未知错误”迷惑了很久,当时在课堂上一直找不到原因。
之前运行其他ASP程序都是好好的,一遇到数据库就出错了。
很尴尬,跟学生解释说服务器出了点小问题,随后我解决了再告诉大家。
硬着头皮接着讲课,其实很心虚。
一下课,猛蹬着自行车回到家中,立马上网搜索答案。
找了很久,决定下次上课试试这些方法行不行。
下次上课我提早到教室。
心说这次解决不了那以后就回机房上课好了。
结果一次就成功了!欢呼!解决方案:为”C:\Windows\Temp“目录添加用户Authenticated Users,为该用户开放所有权限。
(1)WindowsXP、Windows 2003用户请在“C:\Windows\Temp”目录添加一个有权限的“Authenticated Users”用户即可!Vista用户请在“C:\Windows\ServiceProfiles\NetworkService\AppData\Loc al\Temp”目录添加一个有权限的“Authenticated Users”用户即可!具体设置权限步骤:右击Temp文件夹,选择“属性”->“安全”->“编辑”->“添加”,在下面的“输入对象名称来选择”中输入Authenticated Users,确定-> 返回到“Temp 的权限”,将Authenticated Users的权限中的完全控制给勾上。
浅析ASP编程中出现错误问题的解决方法【摘要】当今社会处在以高新科技为经济拉动力的第三次快速发展期。
网络在其中的作用不可忽视,其中ASP是可以与数据库和其它程序进行交互的一种比较简单、方便的编程工具,被最广泛的运用于各种动态网站中。
本文集中介绍了ASP程序设计容易产生的几种错误类型和产生错误时的处理方式。
Abstract: Currently we are entering the period of third quick development with the high technology as the economic driving forces. Networks plays an important role in the process, among them ASP is widely accepted in dynamics websites thanks its simiplity, convenience and interaction with other databases and programmes.The paper focus on several error types and measures accordingly.【关键词】ASP编程错误问题解决方法Key Words: ASP programme, errors, solutions前言近年来,计算机应用领域进一步发展,计算机软件的可靠性问题也愈来愈突出。
二十多年来,软件开发过程和方法的研究取得了很大成绩,但是,迄今为止,仍然没有找到可靠的办法确保复杂软件系统免出故障。
本文在使用ASP 用中常见错误及解决方法进行总结,以期对程序设计者有所帮助。
概述Active Server Page是ASP的全称。
意为“动态服务器页面”。
ASP是微软公司开发的代替CGI脚本程序的—种应用,可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。
下面是虚机维护中,经常碰到的一些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程序中的数据库调用的错误,现收集整理如下: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后面条件子句有问题,一般是缺少逻辑比较符号或者是字段名不正确。
――――――――――――――――――――――――――――――――――――
一般性网络错误。
请检查网络文档(80004005)
Microsoft OLE DB Provider for ODBC Drivers 错误'80004005' [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]一般性网络错误。
请检查网络文档。
产生错误可能原因:
1.数据库连接书写不正确,可能数据库名、服务器名错误。
2.数据库服务器重启中。
――――――――――――――――――――――――――――――――――――
不能使用'';文件已在使用中(80004005)
Microsoft JET Database Engine 错误'80004005'
不能使用'';文件已在使用中。
产生错误可能原因:
1.文件可能正被占用:上传、压缩、打包。
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.数据库文件权限不够。
2.文件占用空间达到磁盘限额上限。
――――――――――――――――――――――――――――――――――――
未发现数据源名称并且未指定默认驱动程序(80004005)
Microsoft OLE DB Provider for ODBC Drivers 错误'80004005'
[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
产生错误可能原因:
1.使用了ODBC连接数据库,服务器上没有配置ODBC数据库,改用OLEDB的标准调用方式:"Driver={SQL Server};Database=dbname;Server=srv;Uid=user;Pwd=pd"可以解决
Provider 错误'80004005' ――――――――――――――――――――――――――――――――――――Microsoft OLE DB Provider for ODBC Drivers 错误'80004005'
未指定的错误
/pcn/conn.asp,行8
产生错误可能原因:
1.从出现错误的页面名称来看,是连接数据库时出现的问题。
最大的可能是无法连接数据库,和上面“一般性网络错误。
”是同性质的问题。
这时需要检查数据库服务器是否正常。
这类错误一般出现在连接MS SQLServer 数据库上。
ADODB.Recordset 错误'800a0e7d' ――――――――――――――――――――――――――――――――――――ADODB.Recordset 错误'800a0e7d'
连接无法用于执行此操作。
在此上下文中它可能已被关闭或无效。
/index.asp,行9
产生错误可能原因:
1.在程序中使用了一个已经关闭或者是还没打开的数据库连接。
Server.CreateObject 失败――――――――――――――――――――――――――――――――――――
服务器对象错误'ASP 0177 : 800401f3'
Server.CreateObject 失败
/xxxxx.asp,行155
无效的ProgID。
若要获取关于此消息的更多的信息,请访问Microsoft 联机支持站点: /contentredirect.asp 。
产生错误可能原因:
1.该错误多数出现在创建组件时,说明程序使用的组件,服务器不支持,需要注册所用的组件。
常见于各种使用了上传组件的ASP页面。
附:一些数据库连接字符串写法
[点击此处收藏本文]
发表于2004年09月01日3:36 PM
jass 发表于2004-10-23 10:51 PM
你好,我有一个asp也出现了ADODB.Recordset 错误'800a0bb9'
错误,你说这个是因为数据库连接conn对象未打开,可我看了看conn.asp文件没有问题,好象数据库连接没有问题呀。
你碰到这个问题是怎么怎么解决的呀,能不能说说经验?
fogdragon 发表于2004-11-15 9:36 PM
把你的ASP程序贴一部分上来看看。
conn.asp和出错附近的一段代码。
zxh 发表于2005-01-27 11:47 AM
ADODB.Recordset 错误'800a0e7d'
连接无法用于执行此操作。
在此上下文中它可能已被关闭或无效。
/default15.asp,行407
fogdragon 发表于2005-03-07 10:20 AM
这个错误常见用了一个前面已经关闭的Recordset或者conn对象,或者是用Recordset的时候忘记打开数据库连接对象Conn。
fish 发表于2005-04-12 10:26 AM
我刚才就解决了“ADODB.Recordset 错误'800a0e7d'
连接无法用于执行此操作。
在此上下文中它可能已被关闭或无效”这个问题,主要是提示中的“连接”、“上下文”和“关闭”这三个关键词。
肯定在程序的前面就有地方直接或者间接(包括<!--#include files=……-->等等)引用了预先声明过的定义数据库连接词conn,修改不同的引用就可以了!。