今天想在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写一点,写一点,到目前为止,之前能想到的比较难搞的问题就都解决了,很开心~
原文链接:https://www.f2er.com/cocos2dx/339545.html