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

由SQL SERVER取出bigint型態欄位轉字串問題

尚未結案
chinliang
一般會員


發表:16
回覆:26
積分:13
註冊:2002-06-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-10 09:59:40 IP:210.201.xxx.xxx 未訂閱
各位先進好:    小弟目前為要將SQL SERVER內欄位型態為bigint的數字,由資料庫取出並轉為字串,亦即資料庫內數字為632210749221086250要能轉出為字串632210749221086250,不過目前使用AsString結果會變成6.32210749221086E17,內有科學記號,且位數似乎已被截掉,看了Help後,發現SQL SERVER的bigint跟Delphi Int64為相同,故想先用AsInt64接出再使用IntToStr轉為字串,不過在TQUERY下似乎無法使用,請各位先進能指點小弟,謝謝。    
  SQLString := 'SELECT TOP 1 TransAct.TUID FROM TransAct';
  with qryTransPak do
  begin
    Active := False;
    with SQL do
    begin
      Clear;
      Add(SQLString);
    end;
  end;
  Open;
  ShowMessage(FieldByName('TUID').AsString);
SQLSERVER內數值: 632210749221086250 使用AsString結果: 6.32210749221086E17
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-10 13:57:57 IP:210.66.xxx.xxx 未訂閱
我試了一下,BDE好像不支援TLargeintField,ADO對於bigint型態的會用TLargeintField來顯示,BDE都是用TFloatField來顯示,不知BDE有沒有辦法支援TLargeintField,如果沒有,你可能要考慮用ADO了! Ian
peipei36
一般會員


發表:8
回覆:51
積分:16
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-11 00:03:23 IP:220.137.xxx.xxx 未訂閱
也許您可以試試先轉型..
with qry1 do
begin
  close;
  sql.text:='select cast(f1 as varchar(100)) from tab1';
  open;
  first;
  showmessage(fields[0].asstring);
end;
發表人 - peipei36 於 2004/06/11 00:04:17
sl@cableplus.com.cn
高階會員


發表:168
回覆:359
積分:130
註冊:2004-03-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-11 15:43:36 IP:218.80.xxx.xxx 未訂閱
你可以在SQL SERVER中把该字段设置成CHAR型的,然后在DELPHI中把它转成DOUBLE型,STRTODOUBLE(‘字段’)
chinliang
一般會員


發表:16
回覆:26
積分:13
註冊:2002-06-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-06-21 11:41:44 IP:61.218.xxx.xxx 未訂閱
感謝各位先進指教,非常抱歉現在才回應,因承接軍方專案,駐廠無法上網,我現在的做法為使用peipei36兄的方法,可以解決我的問題,再次感謝!
系統時間:2024-05-18 15:32:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!