cocos2dx sqllite 增删查改等操作
来源:未知 责任编辑:责任编辑 发表时间:2013-11-26 22:12 点击:次
首先导入文件shell.c sqllite3.c sqlite3.h sqlite3etx.h文件(注意在生成安卓项目是 不要将shell.c写进android.mk文件中,写进去在cywin中生成会出错,当时搞了很久发现的)
p>创建数据库
p>[cpp]
p>sqlite3 *pDB = NULL; //数据库指针
p>char * errMsg = NULL; //错误信息
p>std::string sqlstr; //SQL指令
p>int result; //sqlite3_exec返回值
p>bool isExisted_; //判断是否开始
p>char db[100]="";
p> std::string path = CCFileUtils::sharedFileUtils()->getWritablePath();
p> strcpy(db, path.c_str());
p> strcat(db,"save.db");
p>
p>result = sqlite3_open(db, &pDB);//如果不存在及新建数据库,存在及打开
p>
p>sqlstr="select count(type) from sqlite_master where type='table' and name='achievement_t'";//是否存在这个表
p>sqlite3_exec( pDB, sqlstr.c_str() , ::isExisted, &isExisted_, &errMsg );//不存在 及<span style="font-family:Arial,Helvetica,sans-serif">isExisted_为false</span>
p>函数isExisted
p>[cpp]
p>int isExisted( void * para, int n_column, char ** column_value, char ** column_name )
p>{
p> bool *isExisted_=(bool*)para;
p> *isExisted_=(**column_value)!='0';
p> return 0;
p>}
p>创建表
p>[cpp]
p>result=sqlite3_exec( pDB, "create table achievement_t( id integer primary key autoincrement, stute integer ) " , NULL, NULL, &errMsg );
p>插入数据
p>[cpp]
p>sqlstr=" insert into achievement_t( stute) values ( 0 ) ";
p>for(int i=0;i<15;i++){
p> result = sqlite3_exec( pDB, sqlstr.c_str() , NULL, NULL, &errMsg );
p>}
p>
p>以上是我做项目的
p>对于那些增删查改如下例子
p>[cpp]
p>sqlite3 *pDB = NULL;//数据库指针
p> char * errMsg = NULL;//错误信息
p> std::string sqlstr;//SQL指令
p> int result;//sqlite3_exec返回值
p>
p> //打开一个数据库,如果该数据库不存在,则创建一个数据库文件
p> result = sqlite3_open("save.db", &pDB);
p> if( result != SQLITE_OK )
p> CCLog( "打开数据库失败,错误码:%d ,错误原因:%s\n" , result, errMsg );
p>
p> //创建表,设置ID为主键,且自动增加
p> result=sqlite3_exec( pDB,
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>