在Quick-cocos2d-x中使用sqlite3数据库

今天想在quick中使用sqlite3数据库,网上没有找到比较通俗易懂的教程,大部分都是使用过程中的提问,所以记录一下,以后忘记了可以找起来方便一点。

我用的quick是泰然的社区版Quick-Cocos2dx-Community,可能是3.5吧,里面是有lsqlite的,所以这还是挺方便的。

然后就是使用了,http://lua.sqlite.org/index.cgi/doc/tip/doc/lsqlite3.wiki这是api文档,连我这个英语渣都能看懂,相信大家问题不大。然后代码如下:


Log如下:


成功了对吧,很简单。不过这里面有个坑的,对于初学者来说,可能出现问题了都很难发现是啥原因。就是你的db文件放在资源文件夹res里的时候,它是不可读写的(不知道这么说是否确切)。所以当你使用sqlite3.open(“xxx”),然后在查表使用db:nrows的时候,它永远告诉你no such table。解决的办法就是把db文件复制到可读写路径中,由于我对FileUtils这个类不是很熟悉,找了一下没有找到复制文件的方法,所以就用Lua绑定C++自定义的类写了一个复制文件的方法。在使用sqlite3.open(“xxx”)方法前,调用一下这个方法,然后在open中传入可读写路径下的绝对路径(cc.FileUtils:getInstance():getWritablePath() .. “UserData.db”),就可以查到那个表了。

自定义方法如图:



Lua绑定C++自定义方法在我上一篇日志中有写。哈哈,平时一直利用空闲时间把所做的C++项目用quick写一点,写一点,到目前为止,之前能想到的比较难搞的问题就都解决了,很开心~

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...