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

請教各位先進關於BCD的問題...

尚未結案
kyxiang
一般會員


發表:8
回覆:6
積分:2
註冊:2002-03-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-08 21:38:43 IP:211.78.xxx.xxx 未訂閱
我有一個 function,  要依據傳入的ParamName,  判斷該Param 的 FieldType (可能是 ftString,ftInteger,ftBCD...) 將原本以 String 表示的 ParamValue 轉換成符合的型態傳回 我原本把function的回傳值型態用Variant 但是不對  編譯時會出現型別不符的錯誤(Imcompatible types: 'Variant' and 'TBCD') 請問這種情況我該如何處理呢? 請教各位先進~  謝謝  :D    
 
function GetParamValue(ParamName: string): Variant;
begin
  result := null;
  if FDataSet.Locate('ParamName', ParamName, []) then
    begin
      If (FDataSet.FieldByName('FieldType').Value=ftString) then
        result := FDataSet.FieldByName('ParamValue').AsString;
      If (FDataSet.FieldByName('FieldType').Value=ftBCD) then
        result := StrToBCD(FDataSet.FieldByName('ParamValue').AsString);
    end;
end;
tonytop
中階會員


發表:6
回覆:114
積分:89
註冊:2003-12-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-10 18:21:23 IP:203.204.xxx.xxx 未訂閱
Variant不支援BCD型態的轉換,用VarFMTBcdCreate這個函數來幫忙吧!
function TForm1.GetParamValue(ParamName: string): Variant;
begin
  result := null;
  if FDataSet.Locate('ParamName', ParamName, []) then
    begin
      If (FDataSet.FieldByName('FieldType').Value=ftString) then
        result := FDataSet.FieldByName('ParamValue').AsString;
      If (FDataSet.FieldByName('FieldType').Value=ftBCD) then
       result := VarFMTBcdCreate(StrToBCD(FDataSet.FieldByName('ParamValue').AsString) );
    end;
end;
<[忙盲茫]> ☆程式不是這麼寫滴☆
系統時間:2024-06-01 22:52:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!