我的nvarchar出现问题!

gyx999 2003-08-18 11:16:12
错误类型:
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
/buspass/passes4.asp, line 64
错误句子,在增加数据时
rs("OrderInfo")=Request.Form("passMsg")
rs.update

其中OrderInfo字段是nvarchar型,Request.Form("passMsg")如下

1 finch to steels discount fare- $16
1 toront ttc a - $88
1 markham fare- $50
1 Local Full Fare - $28.8
1 Loca discount Fare - $17.8
1 young street - $45.7
1 downtown to finch- $44
Total:$290.3
...全文
44 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
txlicenhe 2003-08-19
  • 打赏
  • 举报
回复
这个问题我昨天碰到过,搞定了。
就是字段长度的问题。
zosky 2003-08-18
  • 打赏
  • 举报
回复
在Asp页面中向记录集取长text型数据时,出现如下错误现象时:

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'

Errors occurred

可有以下三种解决办法:

(一)使用rs.open sql,conn,1,3方式打开记录集

(二)将该列放在第一列取出,比如comment里存放有较长的text内容,取记录集内容的时候,先来个comment=rs("comment")把这个捣蛋的东西先取出来放到内存变量中,然后再操作其它的字段。由于一般长text内容不会在第一个显示,因此一般都要取出来放到内存变量中。

(三)改为oledb方式连接数据库。在此方式连接数据库时,不会出现该错误(起码我没有遇到过)。在我的系统中,将现在的oledb连接方式改成odbc连接方式后,错误就马上出现了。

此错误怀疑是由于Asp向odbc返回的记录集取数据的机制有些问题造成。建议采用第三种方法避免该错误。
gyx999 2003-08-18
  • 打赏
  • 举报
回复
好像发现原因了,OrderInfo的长度太小了,才100,而Request.Form("passMsg")超过100。
但出现的错误提示令人费解!

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧