EXEC SQL BEGIN DECLARE SECTION;
char prncpl_strng[15]; /* character host variable */
EXEC SQL END DECLARE SECTION;
⋮
EXEC SQL select principal into :prncpl_strng from loan
where customer_id = 1098;
printf("Value of principal=%s\n", prncpl_strng);
因为 prncpl_strng 主机变量时一个 15 字节的缓冲区,所以 GBase 8s ESQL/C 可以
将所有的 decimal 数字放置到主机变量中,此代码段产生以下输出:
Value of principal=1234.876351200
但是,如果前面的代码段声明 prncpl_strng 主机变量为一个 10 字节的缓冲区,则
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 115 -
GBase 8s ESQL/C 舍入 FLOAT 值以填充到 prncpl_strng,此代码段产生以下输出:
Value of principal=1234.8764
GBase 8s ESQL/C 为 FLOAT 或 SMALLFLOAT 值假定 17 十进制位的精度。对于
DECIMAL(n,m),GBase 8s ESQL/C 假定 m 个数位。