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

請教sql 2000中的Type numeric在delphi如何宣告相容值?

尚未結案
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-01 23:22:53 IP:202.145.xxx.xxx 未訂閱
請教當sql2000中的欄位type是numeric時在delphi中的變數type如何宣告? 以下的qryprdt1.fieldbyname('QTY_INT')在sql2000是numeric type procedure Tfrmlogin.btnokClick(Sender: TObject); var QTY_INT:double;這裏應如何宣告? begin QTY_INT:=qryprdt1.fieldbyname('QTY_INT').AsFloat;這裏應帶出什麼type qryexe.Close; qryexe.SQL.Clear; qryexe.SQL.Add('insert into aa values(' QTY_INT ')'); qryexe.execsql; end; 堅持從洗馬桶做起 Eric
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-01 23:52:34 IP:61.62.xxx.xxx 未訂閱
Hi, 你的寫法是 ok 的, 除了 numeric 的範圍大於 delphi 的 double 的範圍, 我們先來看看 sql server 的 numeric 的欄位, decimal[(p[, s])] 固定有效位數及小數位數的數字。若使用最大有效位數,其有效值為 - 10^38 1 到 10^38 – 1 p (precision) 指定小數點左方及右方可儲存的十進位數總和的上限。有效位數的值可從 1 到最大有效位數。最大有效位數值為 38。 s (scale) 指定小數點右方可儲存的十進位個數總和的上限。小數位數可從 0 到 p。預設的小數位數是 0;因此 0 <= s <= p。儲存區大小上限可能不同,視有效位數的設定而定。 精確度 儲存區位元組 1 - 9 5 10-19 9 20-28 13 29-38 17 然後再來看看 delphi 中的 double, Double 5.0 x 10^-324 .. 1.7 x 10^308 15-16(有效位數) 8(佔用byte數) 所以, 原則上在 sql server p 值在 15 以下時, 在 delphi 中的 AsFloat (回值double), 應該是都可以相容的!!
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-02 00:21:20 IP:202.145.xxx.xxx 未訂閱
但是COMPILER 時就會顯示INCOMPATIBLE TYPES STRING AND DOUBLE 的訊息?? 堅持從洗馬桶做起 Eric
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-08-02 00:50:15 IP:61.62.xxx.xxx 未訂閱
引言: 但是COMPILER 時就會顯示INCOMPATIBLE TYPES STRING AND DOUBLE 的訊息??
這和你提問的原因無關, 是這行程式碼你寫錯囉, 要記得轉型一下即可, qryexe.SQL.Add('insert into aa values('+FloatToStr(QTY_INT)+')');
系統時間:2024-05-13 20:38:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!