soon1234
一般會員
發表:3 回覆:8 積分:2 註冊:2006-08-24
發送簡訊給我
|
請問各位先進 最近開始學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
發送簡訊給我
|
用ado沒這問題
用BDE請記得將enable BCD=true , 開SQL explorer找到你的ALIAS...設定吧
------ 星期一,二...無窮迴圈@@
|
Mickey
版主
發表:77 回覆:1882 積分:1390 註冊:2002-12-11
發送簡訊給我
|
你好:
建議你看看 Help 中 TNumericField 以下幾個 Subclass ( TBCDField , TFMTBCDField, TFloatField...) 的 Precision 屬性
|
soon1234
一般會員
發表:3 回覆:8 積分:2 註冊:2006-08-24
發送簡訊給我
|
感謝回覆
不過看完仍沒有一個頭緒可以解出SERVER端數字欄位型態的長度及浮點位數
可以麻煩您指導一下嗎?
|
Mickey
版主
發表:77 回覆:1882 積分:1390 註冊:2002-12-11
發送簡訊給我
|
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
發送簡訊給我
|
很抱歉沒有把問題說清楚
再伺服器端設定欄位時,可能會指定長度,例如說:
FIELDA pic 9(3) -->三位整數 零位小數
FieldB pic 99V99 -->二位整數二位小數
有的伺服器只須定義Float 或是Integer成固定長度,不須指定位數,但是在下要的是能精確表達出在伺服器端的位數,
請各位在幫幫忙,謝謝!
|