1. 程式人生 > >奇怪的資料插入異常:傳入的表格格式資料流(TDS)遠端過程呼叫(RPC)協議流不正確。

奇怪的資料插入異常:傳入的表格格式資料流(TDS)遠端過程呼叫(RPC)協議流不正確。

前天完成了手頭的工作後,經理交給我一個bug讓我看下,我接過後看了下Bug資訊,是從未見過的異常,但根據異常資訊提示又很容易判斷出異常原因。

異常資訊:傳入的表格格式資料流(TDS)遠端過程呼叫(RPC)協議流不正確。引數 7 ("@ExchangeRate"): 提供的值不是資料型別 float 的有效例項。請檢查源資料中的無效值。例如,小數位數大於精度的數值型別的資料即為無效值。 

從資訊提示看,我判斷是資料型別溢位造成的,因為程式中用double型別來對應資料庫的float型別,由此可能導致插入出現溢位。但試驗了幾次,均沒有重現那個異常,所以很是奇怪。在google一把後,發現關於這個異常的資料很少,而且沒有相關的解決辦法。MSDN網站倒是有一篇傳入的表格格式資料流(TDS)遠端過程呼叫(RPC)協議流不正確。

的文章,但跟我這個貌似沒什麼關係。那篇文章介紹說這個異常是JDBC驅動版本導致的,而我的程式沒有使用JDBC。為此我在MSDN社群發了帖子,一天過去了,瀏覽的人不少,但沒一個留言的,可能都沒遇到過吧。哪位看見我這篇文章的牛人遇到過這種情況,希望能討論一下,共同解決這個問題。假如我先解決了這個問題,我也會將解決辦法釋出到這裡!