線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2698
推到 Plurk!
推到 Facebook!

在DBGrid 中修改資料時發生General SQL error的錯誤

尚未結案
jasonts
一般會員


發表:6
回覆:4
積分:2
註冊:2003-01-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-21 10:21:32 IP:211.76.xxx.xxx 未訂閱
請問一下 在DBGrid 中修改某筆資料時發生錯誤General SQL error ODBC SQL Driver 陣容規格的無效字元值     但是這只有某幾筆資料才會造成error, 這是什麼原因造成的呢? 謝謝! 發表人 - jasonts 於 2004/06/21 10:26:19 發表人 - jasonts 於 2004/06/21 15:12:30
huwk
資深會員


發表:26
回覆:340
積分:323
註冊:2002-04-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-29 20:50:21 IP:211.21.xxx.xxx 未訂閱
"Invalid character value for cast specification" *StatementText contained an SQL statement that contained a literal or parameter, and the value was incompatible with the data type of the associated table column. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcsqlprepare.asp
------
熊的學習 http://huwk.blogspot.com
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-30 15:26:14 IP:220.135.xxx.xxx 未訂閱
Hi jasonts 您好: 錯誤訊息看來是型態轉換的問題, 例如欄位是數字, 但你輸入的資料是文字之類的, 我的判斷是你的SQL語法裡有轉換資料型態的函數, 如Convert, Cast, 由於資料沒辦法轉換成你要的型態便會有此錯誤. 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
sl@cableplus.com.cn
高階會員


發表:168
回覆:359
積分:130
註冊:2004-03-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-30 15:39:47 IP:218.80.xxx.xxx 未訂閱
是这个几个字段的类型有错误,所以更改后不匹配。
jasonts
一般會員


發表:6
回覆:4
積分:2
註冊:2003-01-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-06-30 16:53:44 IP:211.76.xxx.xxx 未訂閱
感謝各位大大回應, 小弟用的是Delphi4 SQL7 NT4 的環境, 我的程式是用DBGRID直接連接一個TQuery修改一個table的, 我發現我的table中 有一個欄位格式是 [decimal](18, 4) 然後發現一個怪事,就是此欄位的值明明是5053,但是在DBGRID中卻只顯示為5 然後我在執行時在DBGRID中就無法修改任何欄位而出現如上述的錯誤, 當我用SQL 將此欄的值改為0,然後在執行時在DBGRID上修改其它欄位的值時就不會發生錯誤,不知是什麼原因呢?
huwk
資深會員


發表:26
回覆:340
積分:323
註冊:2002-04-03

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-06-30 17:09:11 IP:61.222.xxx.xxx 未訂閱
猜想應是該欄位儲存的資料有"異常".你可以試試~ select XX from XXX where ooo= 5053 看是否可以找得到~ 應是找不到才對。 而你直接用語法將該欄位變成0後.其異常資料即己不見,故可以更新成功!
------
熊的學習 http://huwk.blogspot.com
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-06-30 17:10:58 IP:220.135.xxx.xxx 未訂閱
Hi jasonts 您好: 不太能確定 1.是否有使用TQuery 的Field Edit, 有沒有設定到DisplayFormat or EditMask 2.5053前後有無空白 3.SQL語法有無轉換型態的指令 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
jasonts
一般會員


發表:6
回覆:4
積分:2
註冊:2003-01-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-06-30 17:52:37 IP:211.76.xxx.xxx 未訂閱
Miles 大大您好: 1. 有使用 TQuery 的Field Edit ,沒有用DisplayFormat 2. 5053是已經存在資料庫中的,然後我用程式run時 DBGRID只有顯示5 3. 沒有用到轉換型態的指令,單純只是元件拉下來設定參數而已。
jasonts
一般會員


發表:6
回覆:4
積分:2
註冊:2003-01-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-06-30 18:01:10 IP:211.76.xxx.xxx 未訂閱
我發現... 好像是PC環境的問題, 有幾台PC執行時會發生錯誤,有幾台PC執行時又沒問題, 可是PC全都是 NT4的啊 ....
huwk
資深會員


發表:26
回覆:340
積分:323
註冊:2002-04-03

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-06-30 18:17:01 IP:211.21.xxx.xxx 未訂閱
那試試更新成相同的mdac試試看囉..
------
熊的學習 http://huwk.blogspot.com
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-06-30 18:25:42 IP:220.135.xxx.xxx 未訂閱
Hi 如huwk大大所說: 看樣子好像是Driver的問題, 請問若直接將數字換掉還有問題嗎. 就是huwk大大說的只有那一格資料"異常". 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
jasonts
一般會員


發表:6
回覆:4
積分:2
註冊:2003-01-13

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-07-08 09:53:43 IP:211.76.xxx.xxx 未訂閱
謝謝各位指教 以上的方法都試過但是沒有解決, 所以我直接將資料欄位的格式由 [decimal](18, 4)改為 float 了 這樣就沒問題了。 還是覺得Delphi 好像和[decimal] 不合... X
系統時間:2024-11-22 5:55:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!