全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:893
推到 Plurk!
推到 Facebook!

Delphi 7 DBExpress String Field

答題得分者是:h@visli
TommyCheng
一般會員


發表:3
回覆:7
積分:2
註冊:2002-06-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-23 15:26:39 IP:220.135.xxx.xxx 未訂閱
我使用Delphi SQL2000-->dbexpress-->clientdataset 3 Tire 前端ClientDataSet選取出來之資料,String格式之欄位若資料不足欄位長度時會自動於字串之後補上空白字元,請問有人遇到過嗎?
h@visli
資深會員


發表:103
回覆:429
積分:431
註冊:2004-02-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-23 22:29:01 IP:222.248.xxx.xxx 未訂閱
是不是字段類型選擇了像char之類的定長類型?換成varchar2試試 ---------------------------- 於Delphi K.Top之上 博采眾家之長, 奉獻綿薄之力 ---------------------------
------
------------------------
博采眾家之長,奉獻綿薄之力
------------------------
TommyCheng
一般會員


發表:3
回覆:7
積分:2
註冊:2002-06-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-25 00:16:40 IP:220.135.xxx.xxx 未訂閱
抱歉 我原來是用的欄位型態是Char 也用 Varchar 試過還是一樣 用BDE則一切正常,DBExpress 就出問題了,是Bug嗎?
malanlk
尊榮會員


發表:20
回覆:694
積分:577
註冊:2004-04-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-08-25 11:29:39 IP:203.69.xxx.xxx 未訂閱
經試驗, Delphi SQL2000-->dbexpress 我的環境是 Delphi 7 Varchar(n), Char 取到 ClientDataSet DataType 會變為 ftString, 而且 Attributes 的faFixed 會被設定 可是如果我取 Length(ClientDataSet.Fields[n].AsString) 傳回長度後, 確定沒有補空白, 會不會是你的資料裡面存的是 "全形" 空白? 或是 Delphi 版本的關係?
TommyCheng
一般會員


發表:3
回覆:7
積分:2
註冊:2002-06-03

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-08-25 23:50:48 IP:220.135.xxx.xxx 未訂閱
我也是用Delphi7 而我是用DBExpress直接將資料顯示在DBGrid上 當DBGrid進入編輯模式時你就發現資料後面多了一些空白字元,試過用varchar好像還是一樣,我想可能還是要用BDE了!
way888
初階會員


發表:32
回覆:76
積分:36
註冊:2005-05-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-08-26 01:01:42 IP:61.216.xxx.xxx 未訂閱
原因可能是資料自BDE轉入時,取到全部CHAR值(包含空字元) 解決辦法可試試TrimRight(s:string):string這個函式 把後面空白都刪除後,再存入SQL2000
malanlk
尊榮會員


發表:20
回覆:694
積分:577
註冊:2004-04-19

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-08-26 01:13:07 IP:61.219.xxx.xxx 未訂閱
Length(ClientDataSet.Fields[n].AsString) 算一下, 或直接進資料庫看資料是否本來就有空白, 就可以證實 way888 兄的推測了...
TommyCheng
一般會員


發表:3
回覆:7
積分:2
註冊:2002-06-03

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-08-29 08:53:33 IP:220.135.xxx.xxx 未訂閱
謝謝各位的幫忙! 原本我是用Delphi 5 BDE 採 3Tier方式設計的ERP,但是由於BDE在人數上的限制所以想改用Delphi7 DBExpress 3Tier方式,結果就發生這樣的狀況,我確定存入SQL2000的資料並沒有尾隨空白字元,用Trim確實可將資料尾隨空白字元去除,但已有上萬行程式需一一比對修正,是一個很大的工程,我只想知道這是DBExpress的一個Bug嗎,還是有哪位先進能正常運作且已在使用中?
系統時間:2024-06-28 17:52:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!