免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5203 | 回复: 6

DB2编程问题 [复制链接]

论坛徽章:
0
发表于 2012-02-02 09:47 |显示全部楼层
20可用积分
求教各位,我在开发中遇到一个在保存二进制数据报文的问题.
目的是将一段二进制通讯报文保存到数据库中.存贮这个数据的字段我用了BLOB类型或VARCHAR FOR BIT DATA类型.
现在的将数据插入的时候没有问题,比如:

EXEC SQL BEGIN DECLARE SECTION;
char    ORIGINAL_TEXT[2001];
EXEC SQL  END  DECLARE SECTION;

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

ORIGINAL_TEXT[1] = 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编程谢谢.

论坛徽章:
0
发表于 2012-02-02 10:40 |显示全部楼层
崩溃啊..有哪位知道否..

论坛徽章:
0
发表于 2012-02-03 16:03 |显示全部楼层
问题解决了...
看来DB2下嵌入式编程没人用了..java为王啊...

论坛徽章:
0
发表于 2012-05-07 22:58 |显示全部楼层
关注中!感兴趣的朋友都来说说

论坛徽章:
1
技术图书徽章
日期:2014-07-11 16:30:58
发表于 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:}





论坛徽章:
0
发表于 2012-05-10 19:21 |显示全部楼层
也不是没人用啦,只不过我没用过DB2 FOR C,我用的是CLI

论坛徽章:
0
发表于 2012-06-15 16:06 |显示全部楼层
路过
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP