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

DELPHI如何取得SERVER端定義的數字位數

 
soon1234
一般會員


發表:3
回覆:8
積分:2
註冊:2006-08-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-08-31 08:47:47 IP:203.74.xxx.xxx 未訂閱

請問各位先進
最近開始學DELPHI,想要對資料庫作處理,
如果要擷取資料欄位的長度和型態,不知要如何做
因為我用下面的方法,欄位若是字元能秀出來位數,但是如果是數字欄位位數都是0,請幫忙解答!謝謝!
For i := 0 to tb.fields.count - 1 do
cb.items.add(tb.fields.FieldName '-' IntToStr(tb.fieldByName(tb.Fields.FieldName).size));
字元OK
數字=0 --是否可以有位數及小數資訊?

對於小數部分,在下是因為要取得SERVER端定義的位數,來設定CLIENT端的長度

所以麻煩您在指導一下,

例如:

SERVER端-欄位 pic 999999V99 為六位整數兩位小數



pgdennis
資深會員


發表:41
回覆:526
積分:443
註冊:2002-05-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-08-31 10:11:35 IP:218.163.xxx.xxx 未訂閱

用ado沒這問題

用BDE請記得將enable BCD=true , 開SQL explorer找到你的ALIAS...設定吧

------
星期一,二...無窮迴圈@@
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-09-07 14:50:44 IP:218.163.xxx.xxx 未訂閱

你好:

建議你看看 Help 中 TNumericField 以下幾個 Subclass ( TBCDField , TFMTBCDField, TFloatField...) 的 Precision 屬性

soon1234
一般會員


發表:3
回覆:8
積分:2
註冊:2006-08-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-09-12 10:10:21 IP:59.120.xxx.xxx 未訂閱

感謝回覆

不過看完仍沒有一個頭緒可以解出SERVER端數字欄位型態的長度及浮點位數

可以麻煩您指導一下嗎?

Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-09-20 10:09:27 IP:218.163.xxx.xxx 未訂閱

procedure TForm2.Button1Click(Sender: TObject);
var i,p,s:integer;
begin
SQLQuery1.Open;
for i := 0 to SQLQuery1.FieldCount - 1 do begin
if SQLQuery1.Fields[i].DataType in [ftFloat, ftBCD, ftFMTBcd] then begin
s:=SQLQuery1.Fields[i].Size;
case SQLQuery1.Fields[i].DataType of
ftFloat: p:=TFloatField(SQLQuery1.Fields[i]).Precision;
ftBCD: p:=TBCDField(SQLQuery1.Fields[i]).Precision;
ftFMTBCD: p:=TFMTBCDField(SQLQuery1.Fields[i]).Precision;
end;
// show result
showmessage(format('Field %s Percision %d size %d',[SQLQuery1.Fields[i].FieldName, p, s]));
end;
end;
end;

soon1234
一般會員


發表:3
回覆:8
積分:2
註冊:2006-08-24

發送簡訊給我
#6 引用回覆 回覆 發表時間:2006-09-22 16:41:57 IP:59.120.xxx.xxx 未訂閱

很抱歉沒有把問題說清楚

再伺服器端設定欄位時,可能會指定長度,例如說:

FIELDA pic 9(3) -->三位整數 零位小數

FieldB pic 99V99 -->二位整數二位小數

有的伺服器只須定義Float 或是Integer成固定長度,不須指定位數,但是在下要的是能精確表達出在伺服器端的位數,

請各位在幫幫忙,謝謝!

系統時間:2024-11-23 6:18:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!