ocos2d-x中使用sqlite数据库
发布时间:2020-12-13 00:04:55 所属栏目:百科 来源:网络整理
导读:下载附件,解压,添加到工程中,加入头文件 Cpp代码 include "sqlite/sqlite3.h" include "sqlite/sqlite3.h" 创建数据库的代码 返回sqlite3的一个指针,通过该指针可以添加、修改、删除数据 Cpp代码 sqlite3*DBUtils::creatTable() { sqlite3*pDB=NULL; //
下载附件,解压,添加到工程中,加入头文件
Cpp代码
include "sqlite/sqlite3.h"
创建数据库的代码 返回sqlite3的一个指针,通过该指针可以添加、修改、删除数据
Cpp代码
sqlite3 * DBUtils::creatTable() { sqlite3 *pDB = NULL;//数据库指针 char * errMsg = NULL;//错误信息 std::string sqlstr;//SQL指令 int result;//sqlite3_exec返回值 //打开一个数据库,如果该数据库不存在,则创建一个数据库文件 result = sqlite3_open("save.db",&pDB); if( result != SQLITE_OK ) // CCLog( "打开数据库失败,错误码:%d ,错误原因:%sn",errMsg ); cout<<errMsg<<endl; //创建表,设置ID为主键,且自动增加 result=sqlite3_exec( pDB,"create table Info( id integer primary key autoincrement,name nvarchar(32),score nvarchar(50),award nvarchar(50)) ",&errMsg ); return pDB; // sqlite3_close(pDB); }
通过创建数据库返回的指针,保存数据
Cpp代码
int DBUtils::save(sqlite3 *pDB) { char * errMsg=NULL; std::string sqlstr=" insert into Info(name,award) values ( '1','1' ) "; int result = sqlite3_exec( pDB,&errMsg ); return result; } 查询数据 定义一个全局函数,也就是在类外定义 Cpp代码
int loadRecord( void * para,int n_column,char ** column_value,char ** column_name ) { InfoBean * info=new InfoBean(column_value[0],column_value[3]); /*info->setId(column_value[0]); info->setName(column_value[1]); info->setScore(column_value[2]); info->setAward(column_value[3]);*/ DBUtils::list->addObject(info); info->autorelease(); return 0; } 定义一个类的静态成员函数 Cpp代码
void DBUtils::listAll(sqlite3 *pDB) { DBUtils::list=new CCSet(); list->autorelease(); char * errMsg=NULL; std::string sqlstr="select * from Info order by score desc limit 0,10"; int result = sqlite3_exec( pDB,&errMsg ); } 当调用listAll的时候,执行到sqlite3_exec的时候,会回调loadRecord函数,一条数据调用一次
遍历CCSet Cpp代码
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |