jackwenghui 发表于 2007-08-30 10:09

变量转换

如果在数据库中字段类型为decimal(16,2),data
那么在写C程序过程中怎么样声明对应的变量?
在直接显示的时候,是否需要进行转换?
如果进行数值计算,需要怎么样操作?

ivhb 发表于 2007-08-30 11:13

如果要数值计算,decimal对应double,data ? 还是date ? 要是date对应int就可以。
如果只是要直接显示,不需要计算,基本上绝大多数都可以直接放入char[]类型的数组里面。
然后直接printf就可以。数据库给你做了自动的转换。

jackwenghui 发表于 2007-08-30 11:18

我的意思是我又一个date字段
我需要用C语言显示它
按照资料,date对应的是long int
可是我定义了一个long int
用游标读入
无法显示出诶
屏幕显示的是%l,让我十分不理解!

东西仓库 发表于 2007-08-30 13:20

可以把 date 的字段先转换成 to_char再插入数据库的时候转换为date (to_date)

jackwenghui 发表于 2007-08-30 13:32

是否有具体的实例呢?

东西仓库 发表于 2007-08-30 13:37

select to_char(col,'%Y-%m-%d') from tablename   放入变量 char tstdate = "" 中

......................

insert into t2(col)values(to_date(tstdate,'%Y-%m-%d') )

ivhb 发表于 2007-08-30 13:39

int
main(void)
{
exec sql begin declare section;
   string str;
exec sql end declare section;

exec sql connect to 'dbname';

exec sql select today into :str from systables
   where tabname = 'systables'
   ;
printf("%s\n", str);
}

jackwenghui 发表于 2007-08-30 13:42

LS的朋友,我有个问题。根据资料,date对应的long int型,为什么不能直接申明long int型呢?

ivhb 发表于 2007-08-30 13:50

如果我没有记错,应该不是long int,实际上是个int4的东西。
因为我一般是在32/64位服务器上,int就是int4,long到了64位机器上就是int8的,所以应该是有问题的。
页: [1]
查看完整版本: 变量转换