cocos2dx 数据存储SQLite

本文来介绍下如何在cocos2dx中使用sqlite。首先我们去下载下它的源码http://www.sqlite.org/sqlite-amalgamation-3071000.zip,下载之后解压到cocos2dx引擎目录下。然后到项目中添加下载好的源码,附加依赖项,OK。下面就使用它来存储数据。直接贴代码:

 

    sqlite3* pdb = NULL;

    char* errMsg = NULL;

    std::string strSql;

    int result;



    result = sqlite3_open("save.db", &pdb);

    if (result != SQLITE_OK)

    {

        CCLog("打开数据库失败,%s", errMsg);

    }



    result = sqlite3_exec(pdb, "create table MyTable(Id Integer primary key autoincrement,name nvarchar(32))", NULL, NULL, &errMsg);

    if (result != SQLITE_OK)

    {

        CCLog("创建表失败,%s", errMsg);

    }



    strSql = "insert into MyTable(name) values ('Orange')";                          //添加记录1

    result = sqlite3_exec(pdb, strSql.c_str(), NULL, NULL, &errMsg);

    if (result != SQLITE_OK)

    {

        CCLog("插入数据失败,%s", errMsg);

    }



    strSql = "insert into MyTable(name) values ('apple')";                           //添加记录2

    result = sqlite3_exec(pdb, strSql.c_str(), NULL, NULL, &errMsg);

    if (result != SQLITE_OK)

    {

        CCLog("插入数据失败,%s", errMsg);

    }



    strSql = "insert into MyTable(name) values ('banana')";                            //添加记录3

    result = sqlite3_exec(pdb, strSql.c_str(), NULL, NULL, &errMsg);

    if (result != SQLITE_OK)

    {

        CCLog("插入数据失败,%s", errMsg);

    }



    //更新第三条记录

    strSql = "update MyTable set name = 'English' where id = 3";

    result = sqlite3_exec(pdb, strSql.c_str(), NULL, NULL, &errMsg);





    //删除第二条记录

    strSql = "delelte from MyTable where id = 2";

    result = sqlite3_exec(pdb, strSql.c_str(), NULL, NULL, &errMsg);





    //判断表是否存在

    bool isExisted = false;

    strSql = "select count() from sqlite_master where type = 'table' and name = 'MyTable'";

    result = sqlite3_exec(pdb, strSql.c_str(), NULL, &isExisted, &errMsg);





    //读取表中所有记录

    strSql = "select * from MyTable";

    result = sqlite3_exec(pdb, strSql.c_str(),HelloWorld::loadData, NULL, &errMsg);



    sqlite3_close(pdb);

    return true;

}



int HelloWorld::loadData(void* para, int m_colum, char ** columValue, char ** columName)

{

    CCLog("id = %d", columValue[0]);

    CCLog("name = %s", columValue[1]);

    CCLog("columName = %s", columName);

    return 0;

}
View Code

 

注意添加头文件#include "sqlite3.h"。

下面介绍一个SQLite数据库管理工具,自己百度一下下载就OK了,安装好就可以打开我们刚刚保存的save.db文件了,如图所示:

cocos2dx 数据存储SQLite

 

你可能感兴趣的:(cocos2dx)