猪神的黄昏-hiDotNet.com

一只猪,在躺椅上,戴着墨镜,看夕阳

用户操作
[即时聊天] [发私信] [加为好友]
帝哲ID:Damon_King
29591次访问,排名4162(-4),好友9人,关注者25人。
别人笑我太疯癫,我笑别人开裤裆
Damon_King的文章
原创 74 篇
翻译 1 篇
转载 36 篇
评论 74 篇
帝哲的公告
最近评论
jindw:2月份的时候,应该拿到的是老版本。
如果是编码的问题。你们可以吧代码压缩之后再用,就不会有编码问题了。

或者,可以吧JSI作为开发期间的脚本管理框架,运行时导出成普通脚本。
yynju:好文
Damon_King:@狮子:
哈,习惯问题吧,看看网页啥的还行!
Damon_King:@PrideRock :
施主,生命在于折腾!阿弥陀佛……
狮子:Chrome 用着并不是很爽
已经被我pass掉了
文章分类
收藏
相册
Damon.King's Photo
Google Logo
我的公司
个人链接
技术网站
C#开源资源
SubSonic架构
SubText主页
组织链接
HiDotNet论坛
铁血军事
铁血论坛
存档
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

原创 奇怪的数据插入异常:传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。收藏

新一篇: 2007年12月10日北京第一场雪 | 旧一篇: 2007年12月7日上班路上见闻-公交撞树

前天完成了手头的工作后,经理交给我一个bug让我看下,我接过后看了下Bug信息,是从未见过的异常,但根据异常信息提示又很容易判断出异常原因。

异常信息:传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 7 ("@ExchangeRate"): 提供的值不是数据类型 float 的有效实例。请检查源数据中的无效值。例如,小数位数大于精度的数值类型的数据即为无效值。 

从信息提示看,我判断是数据类型溢出造成的,因为程序中用double类型来对应数据库的float类型,由此可能导致插入出现溢出。但试验了几次,均没有重现那个异常,所以很是奇怪。在google一把后,发现关于这个异常的资料很少,而且没有相关的解决办法。MSDN网站倒是有一篇传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。的文章,但跟我这个貌似没什么关系。那篇文章介绍说这个异常是JDBC驱动版本导致的,而我的程序没有使用JDBC。为此我在MSDN社区发了帖子,一天过去了,浏览的人不少,但没一个留言的,可能都没遇到过吧。哪位看见我这篇文章的牛人遇到过这种情况,希望能讨论一下,共同解决这个问题。假如我先解决了这个问题,我也会将解决办法发布到这里!

发表于 @ 2007年12月07日 10:32:00|评论(loading...)|编辑

新一篇: 2007年12月10日北京第一场雪 | 旧一篇: 2007年12月7日上班路上见闻-公交撞树

评论

#Damon_King 发表于2007-12-09 20:51:46  IP: 221.222.244.*
看样子这个异常应该是数据类型溢出导致的,可以在为SqlCommand指定参数时设置参数长度来解决这个问题。
#yongtree 发表于2008-01-30 10:31:36  IP: 219.147.10.*
我也遇到类似的情况,期待中……
我用的是hibernate来操作数据库。
#fbjlh 发表于2008-07-16 09:47:41  IP: 202.99.63.*
这个问题我今天也碰到了,解决方法如下:
1.检查@ExchangeRate参数的类型,假设为 float
2.调用此存储过程时,为此参数设置长度必须在float范围之内(各数据库之间可能会有差异)

我的联系方式:fbjlh@163.com
#fbjlh 发表于2008-07-16 09:57:37  IP: 202.99.63.*
如果是SQL Server 数据库,可以指定参数长度为 -1,我只测试过SQL Server数据库,其它数据库没有测试过,如果其它数据库 -1 也可以,别忘了告诉我
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © 帝哲