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

数据库录入时LEFTSTR的问题

答題得分者是:Stallion
ntjrr
高階會員


發表:240
回覆:312
積分:110
註冊:2005-04-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-05-07 17:52:06 IP:222.184.xxx.xxx 訂閱
在用ADOQUERY新增记录时,由于包含在try except 中间,一旦录入内容无意中超过了设计长度,那么不会提示该栏位超长,用户在应用时会感到莫名其妙地错误了。因此我想将所有错误预先判断处理。
ADOQuery1.Parameters.ParamByName('xmmc').Value:=leftstr(Edit1.Text,10);
不知这样对执行效率有无影响,另外leftstr在内容超出时会截断,在不足时会不会用空字符串补足长度而占了字段空间的?比如上面的例子,15个字会存入10个,如果本来就6个字,它会不会用4个空字符串补足了存入数据的?
------
我的编程起步于ktop,我将永远支持ktop
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-05-07 18:32:09 IP:211.22.xxx.xxx 未訂閱
不會!
做以下的例子你就知道。
var
aString:String;
begin
aString := LeftStr('12345',6);
ShowMessage(aString);
end;

還有注意你的SQL欄位長度形態是否配合,如果是LeftStr則是以Unicode的方式計算長度,LeftBstr則是以Single Byte的方式計算長度。
bruce
中階會員


發表:19
回覆:121
積分:83
註冊:2002-04-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-05-14 08:57:57 IP:203.70.xxx.xxx 訂閱
這涉及資料庫儲存資料時,宣告的資料型態
以char這個型態來說,就有char,nvarchar兩種型態
固定長度與不固定長度的儲存方式
要看當時使用哪一種型態而定
系統時間:2024-07-02 9:23:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!