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文件了,如图所示:

 

转载于:https://www.cnblogs.com/OrangeLife/p/4142658.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值