如何存取Oracle Number(18)的字段?

光明山人 光明山人 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
各位大侠救命啊,有一个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。
...全文

相关推荐

评论 9
收藏 已收藏
分享
返回顶部
光明山人
Delphi 5,944 成员 262,941 内容