首先下载sqlite的源码,一共4个文件,添加到项目中
包含头文件:
#include "sqlite3.h"
创建或打开数据库:
- //打开一个数据库文件,如果不存在,则创建一个数据库文件
- int result=sqlite3_open("game.db",&pDB);
- if( result != SQLITE_OK )
- {
- CCLog( "打开数据库失败,错误码:%d ,错误原因:%s\n" , result, errMsg );
- }
- //创建表,设置ID为主键,且自动增加
- sqlite3_exec( pDB, "create table HTable( hid integer primary key autoincrement, name text) " , NULL, NULL, &errMsg );
插入数据
- //插入数据
- sqlstr=" insert into HTable( name ) values ( ‘Henn‘ ) ";
- sqlite3_exec( pDB, sqlstr , NULL, NULL, &errMsg );
打开game.db看以看到:
更新数据
- //更新数据
- sqlstr="update HTable set name=‘Henn‘ where ID = 1";
- sqlite3_exec( pDB, sqlstr , NULL, NULL, &errMsg );
删除数据
- //删除数据
- sqlstr="delete from HTable where hid=1";
- sqlite3_exec( pDB, sqlstr , NULL, NULL, &errMsg );
读取数据
- //回调函数
- int loadRecord(void * para, int n_column, char ** column_value, char ** column_name)
- {
- CCLog("hid=%s,name=%s",column_value[0],column_value[1]);
- return 0;
- }
- //读取数据
- sqlstr="select * from HTable"
- sqlite3_exec( pDB, sqlstr , loadRecord, NULL, &errMsg );
判断表是否存在
- //回调函数
- int isExisted( void * para, int n_column, char ** column_value, char ** column_name )
- {
- bool *isExisted_=(bool*)para;
- *isExisted_=(**column_value)!=‘0‘;
- return 0;
- }
- //判断表是否存在
- bool HSqlite::isExisted4Table()
- {
- bool b;
- char* sqlstr="select count(type) from sqlite_master where type=‘table‘ and name=‘HTable‘";
- sqlite3_exec( pDB, sqlstr , isExisted, &b, &errMsg);
- return b;
- }