kuok2000 发表于 2012-02-02 09:47

DB2编程问题

求教各位,我在开发中遇到一个在保存二进制数据报文的问题.
目的是将一段二进制通讯报文保存到数据库中.存贮这个数据的字段我用了BLOB类型或VARCHAR FOR BIT DATA类型.
现在的将数据插入的时候没有问题,比如:

EXEC SQL BEGIN DECLARE SECTION;
char    ORIGINAL_TEXT;
EXEC SQLENDDECLARE SECTION;

memset(&ORIGINAL_TEXT,0,sizeof(ORIGINAL_TEXT));

ORIGINAL_TEXT = 0x03;

EXEC SQL insert into transaction_store values(:ORIGINAL_TEXT);

EXEC SQL insert into transaction_store values(BLOB(:ORIGINAL_TEXT));

我不知道哪一种正确但是都可以插入成功.

为了验证哪一种正确我现在通过select来取出数据验证.
如果字段类型是BLOB,通过保存到结果到宿主变量为char的变量中时会编译报错为类型不匹配.这个时候应该怎么定义宿主变量呢?
如果字段类型是VARCHAR FOR BIT DATA 时取出来的值为'0x0'并不是我写入的0x03.

请问哪位有C方面开发经验的朋友给点建议,我刚开始接触DB2编程谢谢.

kuok2000 发表于 2012-02-02 10:40

崩溃啊..有哪位知道否..

kuok2000 发表于 2012-02-03 16:03

问题解决了...
看来DB2下嵌入式编程没人用了..java为王啊...

fu20 发表于 2012-05-07 22:58

关注中!感兴趣的朋友都来说说

manULinux 发表于 2012-05-08 09:06

如果字段类型是BLOB,通过保存到结果到宿主变量为char的变量中时会编译报错为类型不匹配.这个时候应该怎么定义宿主变量呢?
如果字段类型是VARCHAR FOR BIT DATA 时取出来的值为'0x0'并不是我写入的0x03.
这个肯定是不行的,因为pro*c中C语言的类型与数据中的类型是对应的,char 怎么能放到blob 里呢。
建议你 当数据库中的数据类型定义 varchar   在读取用C 读取原始数据的时候将blob 类型通过C语言转换为char 在插入到数据库中。{:3_192:}





devilring 发表于 2012-05-10 19:21

也不是没人用啦,只不过我没用过DB2 FOR C,我用的是CLI

dai9812 发表于 2012-06-15 16:06

:PP:PP路过
页: [1]
查看完整版本: DB2编程问题