sqlite3 blob数据读取错误

请问下为什么c操作sqlite3blob数据读出来是错误的?我是通过sprintf(dissql,"insertintoe3disdata(id,content)valu... 请问下为什么c操作sqlite3 blob数据读出来是错误的?
我是通过
sprintf(dissql,"insert into e3disdata(id,content) values(null,?)");
sqlite3_prepare(db1,dissql,-1,&stmt1,0);

sqlite3_bind_blob(stmt1,1,buf,100,SQLITE_STATIC);
写进去,可以通过软件查看到是对的
但是在我的程序里读出来的话,前四个字节就错误了。
sendbuf= (char *)sqlite3_column_blob(stmt,0);
例如我的buf是abcdef,以16进制读出来就成了40,27,2,0,65,66了
请问有人知道答案吗?
展开
 我来答
FCX_love_YCY
2016-06-06
知道答主
回答量:2
采纳率:0%
帮助的人:2324
展开全部
sqlite3_bind_blob的第二个参数是从1开始的,所以content的索引为2,应该改为如下:
sqlite3_bind_blob(stmt1,2,buf,100,SQLITE_STATIC);

取数据也要改:
sendbuf= (char *)sqlite3_column_blob(stmt,1);
依红旭Gf
2015-05-01 · TA获得超过413个赞
知道小有建树答主
回答量:403
采纳率:92%
帮助的人:291万
展开全部
blob 存储的是2进制数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式