h_feiyu 2017-11-14 02:25 采纳率: 0%
浏览 1896
已结题

sqlite sqlite3_step函数只能执行到结果的第一行结束,若想执行完全应该怎么写呢

如题,我在一个char[]中放置了三千的数据,但是执行sqlite3_step()只能到第一行结束,再次调用第二行的结果和第一行一样,请问有什么办法让char[]完全存储进去呢?
测试代码如下://测试data
byte data[60]={ 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
int ik=5;
float fk=2.33;
CString aa;
const char *pzTail = NULL;
int u=0;
u=sqlite3_prepare(db,"insert into Fbb(dada) values(?);",-1,&stmt,&pzTail);
u=sqlite3_bind_blob(stmt,1,data,40,NULL);
u = sqlite3_step(stmt); //16个,到15
u=sqlite3_bind_blob(stmt,1,data+16,40,NULL);
u = sqlite3_step(stmt);

u = sqlite3_step(stmt);
u = sqlite3_step(stmt);
u=sqlite3_finalize(stmt);

u=sqlite3_close(db);

如果只调用一次sqlite3_step(stmt);    只存储一行16字节;0x00到0x15
多次调用则存储的结果是:每一行存的都是第一行相同的数据
求解!!!
  • 写回答

1条回答 默认 最新

  • churuxu 2017-11-18 09:46
    关注

    要重用stmt,试试先sqlite3_clear_bindings()
    再sqlite3_bind_xxx,绑定新的数据

    评论

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序