在 DELPHI里,用adoquery 執行一 插入 陳述句,在64位系統的電腦里執行不報錯,32位系統執行報“將截斷字串或二進制資料”,在32位系統中,把執行陳述句帖到查詢分析器中執行也不會報錯。不知道是什么原因,各位大蝦門,有誰遇到過,指教指教。謝謝!!
uj5u.com熱心網友回復:
用的是 delphi7uj5u.com熱心網友回復:
如果記得沒錯,這個錯誤資訊是指“你要存入的字串內容,其長度超過資料庫該欄位定義的長度”的意思;
個人認為和32位/64位無關。
解決的辦法是,對于要存入資料庫的字串,寫一個函式,將超長的部份截掉,再寫入資料庫。
至于在查詢分析器不會出錯,
也許這個檢查是在ADO里做的吧!
uj5u.com熱心網友回復:
不應該是字串的問題32位比64位小,怎么還超長?
uj5u.com熱心網友回復:
就是搞不明白,我覺得不是超長度的問題,在64位系統執行沒有任何問題,只是32位系統 的執行才報這個錯誤uj5u.com熱心網友回復:
沒有遇到過,截個EXCEPTION圖上來看一下,還有DEBUG一下ADO.SQL.TEXTuj5u.com熱心網友回復:
32位系統執行,提示這個
uj5u.com熱心網友回復:
欄位長度什么的,是絕對沒有問題的,插入的表結構和我建的表 的欄位屬性是一樣的uj5u.com熱心網友回復:
只能看sql陳述句和值了,每個欄位比較uj5u.com熱心網友回復:
showmessage(sql.text),將對話框內的sql陳述句復制到查詢分析器里面執行,看是否報錯?uj5u.com熱心網友回復:
我之前碰到過,應該是字串超過sql資料庫里面定義的長度了。你可以除錯showmessage字串長度出來看看。
應該跟系統版本應該沒什么關系的。
uj5u.com熱心網友回復:
這個問題很常見,應該是字串長度超過了sql資料庫表所定義的長度。跟一下看看就明白了。uj5u.com熱心網友回復:
就是欄位長度問題。或者欄位型別問題。這個問題太常見了。show一下不就知道了uj5u.com熱心網友回復:
字符長度和型別。string還是widestringuj5u.com熱心網友回復:
你也可以用sqlserver的事件監控看一下他實際要執行的sql陳述句和你預設的有什么不同最大的可能就是某個欄位你填的內容超長了
uj5u.com熱心網友回復:
改下資料庫字符長度uj5u.com熱心網友回復:
這么多回貼,你應該將該欄位型別貼出來。出錯錄入的字串是什么。這樣,才好幫助你分析。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/81167.html
標籤:數據庫相關
上一篇:有關DirectoryExists、FindFirst等函式在TService失效問題
下一篇:有用Intraweb的哥們嗎??
