输入参数:pDB,打开的数据库句柄;sql,待执行的SQL 字符串,以’\0’结尾;
输出参数:rowCount,查询出多少条记录(即查出多少行);columnCount,查询出来的记录有多少个字段(多少列); errMsg,返回错误信息;pResult,查询结果,是由字符串组成的一维数组(不要以为是二维数组,更不要以为是三维数组)。它的内存布局是:第一行是字段名称,后面紧接着每个字段的值;
返回值:执行成功返回SQLITE_OK,否则返回其他值
今天下午把通讯录又写了一遍,但这次不是用的链表,而是用sqlite数据库来保存的。通讯录主要有以下几个功能:1.添加联系人 2.删除联系人 3.显示联系人信息 4.查找联系人 5.更改联系人的信息 6.退出
基本框架还是和链表的写法一样,通过一个while语句和switch 语句来实现各个功能。添加联系人就是用insert into;删除联系人用delete实现;更改联系人用update;退出功能则直接调用一个exit就可以了。
这里我要重点讲的是联系人的遍历和查找,主要是通过sqlite3_get_table来实现的。函数原型:int sqlite3_get_table(sqlite3 *pdb,const char*sql,char ***pResult,int *nRows,int *nColumns,char **errMsg),函数功能:执行sql语句,通过一维数组返回结果。输入参数:pdb,数据库句柄,sql,要执行的语句;输出参数:pResult用于保存结果,nRows行数,nColumns 列数,errmsg 错误信息,一般情况下为NULL。需要注意的是,pResult保存的字段信息从pResult[nColumns]开始,pResult[0]到pResult[nColumns-1]为数据库的字符说明段。
以后遇到问题要多积累,及时记录,这样才能不断查漏补缺。