使用sqlite的时候对查询结果的获得一直感觉比较混乱,一通google后收益匪浅,在此做个笔记。
参考原文: http://www.cnblogs.com/acloud/archive/2012/03/23/2413814.html http://www.cppblog.com/czy463/archive/2013/12/16/204816.html(董淳光) https://segmentfault.com/a/1190000002771737
方式一:利用回调函数callback
回调函数格式:
int callback(void*para , int nCount, char** pValue, char** pName) {
/*****************************************************************************
sqlite 每查到一条记录,就调用一次这个回调
para是你在 sqlite3_exec 里传入的 void * 参数, 通过para参数,你可以传入一些特殊的指针(比如类指 针、结构指针),然后在这里面强制转换成对应的类型(这里面是void*类型,必须强制转换成你的类型才可用)。然后操作这些数据
nCount是这一条(行)记录有多少个字段 (即这条记录有多少列)
char ** pValue 是个关键值,查出来的数据都保存在这里,它实际上是个1维数组(不要以为是2维数组),每一个元素都是一个 char* 值,是一个字段内容(用字符串来表示,以/0结尾)
char ** pName 跟pValue是对应的,表示这个字段的字段名称, 也是个1维数组
*****************************************************************************/
string s;
for(int i=0;i |