如何存取Oracle Number(18)的字段?
光明山人 2001-05-17 05:18:00 各位大侠救命啊,有一个Oracle 8的表中一个字段的类型设计为Number(18),结果用TTable打开后发现是TFloatField类对象(本以为会是TLargeIntField类),AsFloat返回的数据类型为Float,精度只有15位,转换为串后不能正确显示,但用SQL Plus可以存取正确的数据。例程如下:
SQL:
CREATE TABLE TABLE1 (
INT64 NUMBER(18, 0)
)
Pascal代码:
var
s: String;
dbl: Double;
ext: Extended;
lgi: LargeInt;
begin
dbl := Table1.Fields[0].AsFloat;
ext := dbl;
lgi := Trunc(ext);
Str( lgi, s );
如果字段值为1234567890123456,则Table1.Fields[0].AsString为1.23456789012346E15,而s为1234567890123460。