更新日期:2024年09月11日
数字类型主要是指使用SQLT_NUM类型的处理。
首先,在获取类型时,GCI接口根据不同的参数配置,对于数字类型,返回的类型有所不同。
具体见表:
Factory 数字类型
1
2
3
SQL_INTEGER
SQLT_INT
SQLT_NUM
SQLT_NUM
四字节整型
SQL_DECIMAL
SQLT_CHR
SQLT_NUM
SQLT_NUM
dec
SQL_SMALLINT
SQLT_INT
SQLT_NUM
SQLT_NUM
两字节整型
SQL_INFX_BIGINT
SQLT_INT
SQLT_NUM
SQLT_NUM
bigint
SQL_BIGINT
SQLT_INT
SQLT_NUM
SQLT_NUM
Int8
SQL_FLOAT
SQLT_FLT
SQLT_FLT
SQLT_FLT
float
SQL_REAL
SQLT_FLT
SQLT_FLT
SQLT_FLT
smallfloat
其次,在插入数据过程中,使用SQLT_NUM类型作为绑定变量的类型时,应用程序须使
用 字符串类型缓存进行绑定。字符串长度可以根据实际字段的精度(数字类型)设定,
一般 设置长度为精度加1。
当操作数据库字段的数字精度大于8字节所表示的范围,或者浮点数精度超过15时, GCI
接 口需要使用字符串类型,进行绑定操作。如果使用的是SQLT_NUM类型,也会转为字
符串
类型进行操作。
例:
Char ch[32] = ‘1.1234567890987654321’;
rc=GCIBindByPos(stmt,&Bindp[0],errhp,1,(dvoid*)ch,(sb4)32,SQLT_NUM,NULL,NULL,NUL
L,0,NULL,GCI_DEFAULT);
上例中,类型指定SQLT_NUM ,实际缓存的内容为字符串。
GBase 8s GCI 接口使用指南
南大通用数据技术股份有限公司 9