在Asp页面中向记录集取长text型数据时,出现如下错误现象时:
MicrosoftOLEDBProviderforODBCDrivers错误'80040e21'
Errorsoccurred
可有以下三种解决办法:
(一)使用rs.opensql,conn,1,3方式打开记录集
(二)将该列放在第一列取出,比如comment里存放有较长的text内容,取记录集内容的时候,先来个comment=rs("comment")把这个捣蛋的东西先取出来放到内存变量中,然后再操作其它的字段。由于一般长text内容不会在第一个显示,因此一般都要取出来放到内存变量中。
(三)改为oledb方式连接数据库。在此方式连接数据库时,不会出现该错误(起码我没有遇到过)。在我的系统中,将现在的oledb连接方式改成odbc连接方式后,错误就马上出现了。
此错误怀疑是由于Asp向odbc返回的记录集取数据的机制有些问题造成。建议采用第三种方法避免该错误。
提问:
那么以下错误类型是什么意思
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'
The request properties can not be supported by this ODBC Driver
数据库字段长度不够
出错信息
Microsoft OLE DB Provider for ODBC Drivers error '80040e21'
The request properties can not be supported by this ODBC Driver.
//_ScriptLibrary/Recordset.ASP, line 466
原因
When the Recordset DTC has the cursor location property set to "2 - Use Server Side Cursors" (the default value), it cannot return multiple recordsets.
当the Recordset DTC的游标设为2(服务器端游标,默认值)时,无法返回多个记录集
RESOLUTION
Under the Properties dialog box for the Recordset DTC, go to the Advanced tab and change the cursor location from "2 - Use Server-Side Cursor" to "3 - Use Client-Side Cursor."
asp错误代码
错误代码错误消息和扩展信息
ASP0100 Out of memory(内存溢出)
ASP0101 Unexpected error(函数返回e x c e p t i o n _ n a m e )
ASP0102 Expecting string input(期待字符串输入)
ASP0103 Expecting numeric input(期待数字量输入)
ASP0104 Operating not allowed(操作不允许)
ASP0105 Index out of range(数组下标溢出)
ASP0106 Type Mismatch(数据类型不匹配)
ASP0107 Stack Overflow(处理的数据量超过了允许的范围)
ASP0115 Unexpected error(出现在外部对象中的可捕获的错误e x c e p t i o n _ n a m e,脚本不能继续运行)
ASP0177 S e r v e r.CreateObject Failed(无效的P r o g I D )
ASP0190 Unexpected error(当释放外部对象时,出现的可捕获的错误)
ASP0191 Unexpected error(在外部对象的O n S t a r t P a g e方法中出现的可捕获的错误)
ASP0192 Unexpected error(在外部对象的OnEndPage 方法中出现的可捕获的错误)
ASP0193 OnStartPage Failed(在外部对象的O n S t a r t P a g e方法中出现错误)
ASP0194 OnEndPage Failed(在外部对象的OnEndPage 方法中出现错误)
ASP0240 Script Engine Exception(脚本引擎从o b j e c t _ n a m e抛出异常e x c e p t i o n _ n a m e )
ASP0241 CreateObject Exception(object_name的C r e a t e O b j e c t方法所导致的异常e x c e p t i o n _ n a m e )
ASP0242 Query OnStartPage Interface Exception(查询对象o b j e c t _ n a m e的O n S t a r t P a g e或O n E n d P a g e
方法所导致的异常e x c e p t i o n _ n a m e )
------------------
ADO 错误代码
除了在 Error 对象和 Errors 集合中说明的提供者错误之外,ADO 本身也将错误返回到运行时环境的异常处理机制之中。使用编程语言的错误捕获机制(如 Microsoft? Visual Basic? 中的 On Error 语句)可捕获及处理下列错误。下表将同时显示十进制和十六进制错误代码值。
常量名称 编号 说明
adErrInvalidArgument 3001 0x800A0BB9
应用程序使用的参数其类型错误、超出可接受的范围或者与其他参数冲突。
adErrNoCurrentRecord 3021 0x800A0BCD
BOF 或 EOF 为 True,或者当前记录已经删除。应用程序请求的操作需要当前记录。
adErrIllegalOperation 3219 0x800A0C93
应用程序请求的操作不允许出现在该上下文中
adErrInTransaction 3246 0x800A0CAE
在事务中应用程序无法显式关闭 Connection 对象。
adErrFeatureNotAvailable 3251 0x800A0CB3
提供者不支持应用程序请求的操作。
adErrItemNotFound 3265 0x800A0CC1
ADO 无法在对应于应用程序请求的名称或顺序引用的集合中找到对象。
adErrObjectInCollection 3367 0x800A0D27
无法追加,对象已经在集合中。
adErrObjectNotSet 3420 0x800A0D5C
应用程序引用的对象不再指向有效的对象。
adErrDataConversion 3421 0x800A0D5D
应用程序使用了不符合对当前操作的值类型。
adErrObjectClosed 3704 0x800A0E78
如果对象关闭,则不允许应用程序请求的操作。
adErrObjectOpen 3705 0x800A0E79
如果对象打开,则不允许应用程序请求的操作。
adErrProviderNotFound 3706 0x800A0E7A
ADO 找不到指定的提供者。
adErrBoundToCommand 3707 0x800A0E7B
应用程序无法用 Command 对象将 Recordset 对象的 ActiveConnection 属性更改为它的来源数据。
adErrInvalidParamInfo 3708 0x800A0E7C
应用程序错误地定义了 Parameter 对象。
adErrInvalidConnection 3709 0x800A0E7D
应用程序通过引用关闭或无效的 Connection 对象来请求对对象的操作。
-------------------------
VBScript 错误信息
--------------------------------------------------------------------------------
错误代码 信息
5 无效的过程调用或参数
6 溢出
7 内存不够
9 下标越界
10 数组长度固定或临时锁定
11 被零除
13 类型不匹配
14 字符串空间溢出
28 堆栈空间溢出
35 Sub 或 Function 未定义
48 加载 DLL 时出错
51 内部错误
53 文件未找到
57 设备 I/O 错误
58 文件已存在
61 磁盘已满
67 文件太多
70 没有权限
75 路径/文件访问错误
76 路径未找到
91 未设置对象变量或 With 块变量
92 未初始化 For 循环
94 无效的 Null 使用
322 无法创建必要的临时文件
424 要求使用对象
429 ActiveX 部件无法创建对象
430 类不支持 Automation
432 Automation 操作过程中,未找到文件名或类名
438 对象不支持此属性或方法
440 Automation 错误
445 对象不支持此操作
446 对象不支持命名的参数
447 对象不支持当前区域设置
448 未找到命名参数
449 此参数必选
450 参数个数错误或无效的属性赋值
451 对象不是集合
453 未找到指定的 DLL 函数
455 代码资源锁定错误
457 此键已和集合中的元素关联
458 VBScript 中不支持使用 Automation 类型的变量
500 变量未定义
501 非法赋值
502 用此对象进行脚本编程会出错
503 对象不能安全初始化
1001 内存不够
1002 语法错误
1003 缺少“:”
1004 缺少“;”
1005 缺少“(”
1006 缺少“)”
1007 缺少“]”
1008 缺少“{”
1009 缺少“}”
1010 缺少标识符
1011 缺少“=”
1012 缺少“If”
1013 缺少“To”
1014 缺少“End”
1015 缺少“Function”
1016 缺少“Sub”
1017 缺少“Then”
1018 缺少“Wend”
1019 缺少“Loop”
1020 缺少“Next”
1021 缺少“Case”
1022 缺少“Select”
1023 缺少表达式
1024 缺少语句
1025 语句未结束
1026 缺少整型常数
1027 缺少“While”或“Until”
1028 缺少“While”、“Until”或语句结尾
1029 局部变量或参数过多
1030 标识符过长
1031 无效的编号
1032 无效的字符
1033 未终止字符串常数
1034 未终止注释
1035 嵌套的注释
1037 “Me”关键字使用无效
1038 “Loop”缺少“Do”
1039 无效的“Exit”语句
1040 无效的“For”循环控制变量
1041 名称被重定义
1042 必须是行中的第一个语句
1043 无法为非 ByVal 参数赋值
1044 调用 Sub 时不能使用括号
1045 缺少字母常数
1046 缺少“In”
32766 True
32767 False
32811 未找到元素
服 务 器 常 见 错 误
[ 2003年3月28日,阅读人数111人 ]
以下是通常服务器错误和问题解答的步骤。 ●ASP 80004005 ——数据源文件名没有被找到没有默认的驱动说明 80004005——操作系统必须被更新查找 80004005——Microsoft Jet database引擎不能打开文件(未知) 80040e10——参数太少 80040e21——插入或更新错误 Error’80040e07’在标准表达式里输入不匹配的数据 ●IBM Websphere IBM WebSphere Application Server Support Center. IBM WebSphere -.为WebSphere Application Server Version 3.x 提供技术 ●技巧和提示 IBM WebSphere -.当一个servlet和JSP被调用时,Error 403出现 IBM WebSphere -.当一个servlet和JSP被调用时,Error 404出现 IBM WebSphere - 有字母u开始的JSP 1.0文件不能被编译 IBM WebSphere – 修理故障 ●Allaire JRun Allaire JRun DevCenter 当使用JRUN 2.3.3是500 内部服务器错误 当页面设置为默认的jsp时JRUN错误 把JRUN当做NT服务器开启时,引起Error 2140 ●Allaire Cold Fusion Allaire Cold Fusion DevCenter. ColdFusions技术提示 当基于ColdFusion 进入数据库(Access, Foxpro,Etc.)时ACCESS DENIED错误 405Method不允许个人网络服务器错误 Cold Fusion - 当试着更新Access数据库时操作系统必须使用一个可更新的查询错误
(DVOL本文转自:中国DV传媒 http://www.dvol.cn)