知道sqlite的进,sqlite_column_bolb取数错误.

liujie2715 2012-08-04 04:47:40
代码如下:
sqlite3 *db=0;
sqlite3_stmt *stat;
sqlite3_open(DB_PATH,&db);
sqlite_prepare(db,"select Log from inklog;",-1,&stat,0);
rc=sqlite3_step(stat);
char *var=0;
while(rc)
{
char *val=(char *)sqlite3_column_blob(stat,0);//这里取值为空.我确信我这个字段有值,但就是取不出来
int slengh=sqlite_column_bytes(stat,0);//此句话除了获得字段大小外还有什么其他隐藏含义?因为只要是取blob类型的值都加上了这句
}


WHY,WHY,WHY,WHY,WHY,WHY,WHY,WHY.我取的值永远是Text Editor的值...别人都是blob的值.那个值得类型明明是Bolb的.
...全文
192 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyq5945 2012-08-04
  • 打赏
  • 举报
回复
int slengh=sqlite_column_bytes(stat,0);
byte *pBuf = new byte[slengh];
memcpy(pBuf, (BYTE*)sqlite3_column_blob(stat,0), slengh);
__int64 i64Value = *(__int64*)pBuf;
liujie2715 2012-08-04
  • 打赏
  • 举报
回复
没人回答了...自己顶...
char *val=(char *)sqlite3_column_blob(stat,0);//这里取不到值
int slengh=sqlite_column_bytes(stat,0);//这里能够得到大小.很奇怪.如果没取到值应该是0,但slengh有值
liujie2715 2012-08-04
  • 打赏
  • 举报
回复
int slengh=sqlite_column_bytes(stat,0);
byte *pBuf = new byte[slengh];
memcpy(pBuf, (BYTE*)sqlite3_column_blob(stat,0),0,0);这里少参数,我加了...

这个方法取出来的值是乱码,而里面存的是int64的值.
zyq5945 2012-08-04
  • 打赏
  • 举报
回复
这样试试,看看pBuf 是否有值。
int slengh=sqlite_column_bytes(stat,0);
byte *pBuf = new byte[slengh];
memcpy(pBuf, (BYTE*)sqlite3_column_blob(stat,0), slengh);

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧