Sqlite 关于blob数据存储,存入的数据长度不对 50C

希望存的是上万的byte数组,但是存进去的只有一小部分。直接上代码和图:
CString tmp;
tmp.Format("insert into DigiSprInfo( samplecount,"\
"lat,long,heigh,radarheigh,ggcount,ggtime,sprttotalnum,"\
"sprttype,data) values(%d,%f,%f,%f,%f,%d,%d,%d,%d,?);",

DataInfo_all->SampleCount,
DataInfo_all->Long,
DataInfo_all->Lat,
DataInfo_all->Height,
DataInfo_all->Radaheight,
DataInfo_all->GGCount,
DataInfo_all->GGTime,
DataInfo_all->SprtTotalNum,
DataInfo_all->SprtType,
DataInfo_all->DataSpr);
//插入数据
sqlite3_prepare(m_pGlobalDB,tmp,-1,&stmt,&pzTail); //准备执行语句,实际并不执行
sqlite3_bind_blob(stmt,1,DataInfo_all->DataSpr,DataInfo_all->datalen-108,NULL); //附加值
//sqlite3_bind_blob(stmt,1,DataInfo_all->DataSpr,DataInfo_all->datalen-108,NULL); //附加值
int JG = sqlite3_step(stmt); //执行prepare语句
if ( JG !=SQLITE_DONE )
{
JG = 111;
}
sqlite3_finalize(stmt); //释放对象

sqlite3_close(m_pGlobalDB);
执行的结果:是只有几个数据

2个回答

是不是参数给错了? 大概看了下SQLITE的文档,sqlite3_bind_blob函数的第二个参数应该是SQL语句中参数的序号(从1开始)。 参见: https://sqlite.org/c3ref/bind_blob.html。 部分内容节选如下: The second argument is the index of the SQL parameter to be set. The leftmost SQL parameter has an index of 1. When the same named SQL parameter is used more than once, second and subsequent occurrences have the same index as the first occurrence. The index for named parameters can be looked up using the sqlite3_bind_parameter_index() API if desired. The index for "?NNN" parameters is the value of NNN. The NNN value must be between 1 and the sqlite3_limit() parameter SQLITE_LIMIT_VARIABLE_NUMBER (default value: 999).

存到数据库的只有 01 01 02 00 00 00 00 00 EE 01 15 01 A9 00 7A 这么长,求解!!!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐