請教sql 2000中的Type numeric在delphi如何宣告相容值? |
尚未結案
|
huangeider
高階會員 ![]() ![]() ![]() ![]() 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
請教當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 發送簡訊給我 |
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 發送簡訊給我 |
|
timhuang
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |