搜索到是sql_dialect的问题,但是在dbx的connection里的参数里加了sqldialect=3,还是不行
把数据库的级别也改为3,还是不行。。。。。。。。
Firebird的基本数据类型之Numeric类型问题。
TinTin
等级: 三流高手
贴子:113
积分:140
金币:0
注册:2005-8-15
第 1 楼
Firebird的基本数据类型之Numeric类型问题。
当用dbExpress时候,如果Numeric为Numeric(18,3),dbExpress总是提示错误:
SQL SERVETR ERROR:DATA TYPE UNKNOWN
Client SQL dialect 1 does not support reference to BigInt DataType
改为:DOUBLE PRECISION即可,但是,有些郁闷,Numeric(18,3)没有超过范围吧?
当Numeric(5,3)没有错误
本贴发表时间:2005-8-26 14:31:55
TinTin
等级: 三流高手
贴子:113
积分:140
金币:0
注册:2005-8-15
第 2 楼
另外,如果用IBExpert工具,DECIMAL类型总是被系统转换成Numeric类型,郁闷中。
本贴发表时间:2005-8-26 14:35:49
天下无雪
等级: 管理员
头衔:暗黑骑士
贴子:803
积分:762
金币:0
注册:2005-8-12
第 3 楼
1、请在连接时将dialect 级别改为3,这是一个非常重要的而容易犯的错误。Dialect 1不支持一些东西,比如不认日期型,不认BIGINT;
2、我用IBExpret,从没见过会将Decimal类型转为Numeric的。
[本贴已被 天下无雪 于 2005-8-26 18:07:10 修改过]
黄菊枝头生晓寒,
人生莫放酒杯干。
风前横笛斜吹雨,
醉里簪花倒著冠。
身健在,且加餐,
舞裙歌板尽情欢。
黄花白发相牵挽,
付与时人冷眼看。
本贴发表时间:2005-8-26 15:48:00
haha168
等级: 论坛版主
头衔:哈哈168
贴子:171
积分:209
金币:0
来自:广东
注册:2005-8-23
第 4 楼
到dialect 3才是真正意义的精度数据类型,在dialect 1下面Numeric的精度最大是15位,也就是存放之样的数最大是能存放小数点位数为0的整数为15位的数,他的物理实现因dialect 1中不支持64位整数就把numeric类型当浮点数来处理,浮点数运行慢,而且有精度误差,如12.08(这个数本意是以numric类型存放),那到数据表中之后可能会变成了12.0799999999(早期用fb/ib的程序员是经常抱怨数据精度不准)。 只有到FB 1.5的dialect 3 ,Numrice的数据类型才以64位的整点方式存放,Numric的精度才准确。
本贴发表时间:2005-8-26 23:46:21
TinTin
等级: 三流高手
贴子:113
积分:140
金币:0
注册:2005-8-15
第 5 楼
请问两位:
IBExpret连接FDB可以设置dialect 3,
如果用dbExpress,如果在程序中指定dialect 3呢?
是不是在FB的驱动设置呢?能否详细告诉?
先谢了
本贴发表时间:2005-8-27 0:19:46
TinTin
等级: 三流高手
贴子:113
积分:140
金币:0
注册:2005-8-15
第 6 楼
我看到了,谢谢两位!
本贴发表时间:2005-8-27 0:21:04
haha168
等级: 论坛版主
头衔:哈哈168
贴子:171
积分:209
金币:0
来自:广东
注册:2005-8-23
第 7 楼
在dbexpess中设定如下:
1.打开delphi7 新建一个应用程序.
2 找到SQLConnection组件,放置一个在窗体上
3 双击此组件弹出一个连接对话框,Drive Name,请选择interbase(如果没有安装对fb驱动) .
4 点击其上面有"+"字的按钮,新增一个连接名
5 在connection setings 中设定sqldialect 的值为3即可.
如果用脚本设定客户端连连为dialect 3可如下:
SET SQL DIALECT 3;注意他仅是设定客户端连接为dialect 3模式,不能改变数据库的dialect.如果要改变数据库dialect,请用
gfix –sqldialect 3 数据库文件 -user username -password 密码的形式改
本贴发表时间:2005-8-27 10:56:57
TinTin
等级: 三流高手
贴子:113
积分:140
金币:0
注册:2005-8-15
第 8 楼
谢谢斑竹!
本贴发表时间:2005-8-27 20:16:43
zzsczz
等级: 籍籍无名
贴子:5
积分:6
金币:0
注册:2005-10-27
第 9 楼
我的也是,,decimal变成numeric。。。。
本贴发表时间:2005-10-27 17:10:31
tfrain
等级: 籍籍无名
头衔:风声雨声读书声
贴子:44
积分:45
金币:0
注册:2005-10-8
第 10 楼
numeric(nn,0) 会自动转换为int,bigint