Cocos2d 使用Sqlite

首先下载sqlite的源码,一共4个文件,添加到项目中


包含头文件:

#include "sqlite3.h"


创建或打开数据库:

  1. //打开一个数据库文件,如果不存在,则创建一个数据库文件   
  2. int result=sqlite3_open("game.db",&pDB);  
  3. if( result != SQLITE_OK )   
  4. {  
  5.     CCLog( "打开数据库失败,错误码:%d ,错误原因:%s\n" , result, errMsg );   
  6. }  
  7.   
  8. //创建表,设置ID为主键,且自动增加   
  9. sqlite3_exec( pDB, "create table HTable( hid integer primary key autoincrement, name text) " , NULL, NULL, &errMsg );   
在Resources目录中可以看到出现了一个game.db的数据库文件。


插入数据

  1. //插入数据   
  2. sqlstr=" insert into HTable( name ) values ( ‘Henn‘ ) ";   
  3. sqlite3_exec( pDB, sqlstr , NULL, NULL, &errMsg );   

打开game.db看以看到:




更新数据

  1. //更新数据  
  2. sqlstr="update HTable set name=‘Henn‘ where ID = 1";   
  3. sqlite3_exec( pDB, sqlstr , NULL, NULL, &errMsg );   


删除数据

  1. //删除数据  
  2. sqlstr="delete from HTable where hid=1";   
  3. sqlite3_exec( pDB, sqlstr , NULL, NULL, &errMsg );   


读取数据

  1. //回调函数  
  2. int loadRecord(void * para, int n_column, char ** column_value, char ** column_name)  
  3. {  
  4.      CCLog("hid=%s,name=%s",column_value[0],column_value[1]);   
  5.     return 0;   
  6. }  
  7. //读取数据  
  8. sqlstr="select * from HTable"  
  9. sqlite3_exec( pDB, sqlstr , loadRecord, NULL, &errMsg );   


判断表是否存在

  1. //回调函数  
  2. int isExisted( void * para, int n_column, char ** column_value, char ** column_name )   
  3. {   
  4.     bool *isExisted_=(bool*)para;   
  5.     *isExisted_=(**column_value)!=‘0‘;   
  6.     return 0;   
  7. }   
  8.   
  9. //判断表是否存在  
  10. bool HSqlite::isExisted4Table()  
  11. {  
  12.     bool b;   
  13.     char* sqlstr="select count(type) from sqlite_master where type=‘table‘ and name=‘HTable‘";   
  14.     sqlite3_exec( pDB, sqlstr , isExisted, &b, &errMsg);   
  15.     return b;  
  16. }  

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。