- 论坛徽章:
- 0
|
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编程谢谢.
|
|