使用sqlite3的一定总结

从来没有接触过数据库,因为最近的一个项目接触了sqlite3,记录一些经验总结;
自学参考资料

这里写图片描述
sqlite3的相关文件,直接放在主程序的目录内;

这里写图片描述
创建数据库,并创建表;

其他操作的一般步骤:
打开数据库:int sqlStat = sqlite3_open("result.db", &resDb);
输入SQL语句:sqlStat = sqlite3_exec(resDb, sqlExp, callback, &resBuf, &errBuf);
关闭数据库:sqlStat = sqlite3_close(resDb);

sqlite3_exec使用起来很方便,5个参数的含义:
第一个参数 : 是打开的数据库对象,
第二个参数 :输入的SQL语句,char*类型
第三个参数 :callback 是一个回调,
第四个参数 : 作为回调函数第一个参数,
第五个参数:errBuf将被返回用来获取程序生成的任何错误。

主要是回调函数(callback)刚开始很困惑,不懂什么意思;
一般的SQL语句能直接返回查询结果,而sqlite3_exec返回的执行是否成功;
如何获取SQL语句的返回值需要依靠callback函数;
也就是说需要返回信息的语句需要回调函数,不需要返回信息的就不需要回调函数;,第三,四个参数可以设为0;

int callback(void* para, int itemNum, char** valList, char** nameList)
{
    g_itemNum = itemNum;
    if (itemNum > 0)
    {
        char * val=NULL, *name=NULL;
        for (int ind = 0; ind < itemNum; ind++)
        {
            g_valBuf.push_back(CString(valList[ind]));
            g_nameBuf.push_back(CString(nameList[ind]));
        }
    }
    return 0;
}

可以把信息存入全局容器中,再从全局容器中提取;
如何需要在多个类中调用同一回调函数,可以使用静态或者extern关键字;

猜你喜欢

转载自blog.csdn.net/sazass/article/details/82186461
今日推荐