ASP中数据类型与SQL SERVER中数据类型的转换

ztt918zx 2015-05-04 12:11:54
虽然自己测试没有问题,但是少量客户反映,使用中出现以下错误

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'
多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。


id=session("id")
rs("id")=id ' 错误提示该行出现问题


使用vartype进行检查,经过id=session("id")之后,id的类型是长整形,而sql server数据库中rs("id")的id字段是int(4字节),所以我怀疑上面的错误是因为类型不匹配而引起的。

那么现在的解决办法是:
1.
rs("id")=int(id) 
,这种办法可能可以,但是vbscript中int类型的数据范围-32768~32767,如果转换为int后,随着用户的增多,id超过了这个范围就麻烦了

2.将sql server数据库中的id字段改为bigint,但是不知道bigint是否对应于vbscript中的long?

困惑中,请教高手怎么解决这个问题,谢谢!
...全文
226 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dogfish 2015-05-05
  • 打赏
  • 举报
回复
引用 7 楼 ztt918zx 的回复:
程序中下面的情况是否会导致数据类型的不匹配呢?谢谢 endtime=now() rs("endtime")=endtime endtime在SQL server中是datetime类型
试试这个rs("endtime")=CDATE(endtime)
wangsdong1 2015-05-04
  • 打赏
  • 举报
回复
你先将你的ID输出来看看是什么数字
ztt918zx 2015-05-04
  • 打赏
  • 举报
回复
程序中下面的情况是否会导致数据类型的不匹配呢?谢谢 endtime=now() rs("endtime")=endtime endtime在SQL server中是datetime类型
ztt918zx 2015-05-04
  • 打赏
  • 举报
回复
因为其他地方都检查了,没有发现问题
ztt918zx 2015-05-04
  • 打赏
  • 举报
回复
引用 3 楼 showbo 的回复:
和1#说的差不多,不是你的id的问题,可能是客户端提交的内容太长,超过了某个字段的长度而出现这个错误。自己将字段内容加长或者改为ntext类型
谢谢版主,请问rs("id")的标识规范设置为否,是否与此有关呢,谢谢
  • 打赏
  • 举报
回复
和1#说的差不多,不是你的id的问题,可能是客户端提交的内容太长,超过了某个字段的长度而出现这个错误。自己将字段内容加长或者改为ntext类型
jiangzf1 2015-05-04
  • 打赏
  • 举报
回复
vbscript的数据长度要根据浏览器不同的,32的服务器是不支持到64位的长整型数据(asp不支持64位),达不到sql server 的 bigint 大小。
Dogfish 2015-05-04
  • 打赏
  • 举报
回复
VBScript的值的范围是 -2147483648 and 2147483647. MSSQL的INT的值的范围是 -2147483648 and 2147483647 所以是没有问题的。可能问题不是出现在那里。有可能有空格。

28,408

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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