首先下载sqlite的源码,一共4个文件,添加到项目中
包含头文件:
#include "sqlite3.h"
创建或打开数据库:
[cpp] view
plaincopy
- //打开一个数据库文件,如果不存在,则创建一个数据库文件
- 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 );
在Resources目录中可以看到出现了一个game.db的数据库文件。
插入数据
[cpp] view
plaincopy
- //插入数据
- sqlstr=" insert into HTable( name ) values ( ‘Henn‘ ) ";
- sqlite3_exec( pDB, sqlstr , NULL, NULL, &errMsg );
打开game.db看以看到:
更新数据
[cpp] view
plaincopy
- //更新数据
- sqlstr="update HTable set name=‘Henn‘ where ID = 1";
- sqlite3_exec( pDB, sqlstr , NULL, NULL, &errMsg );
删除数据
[cpp] view
plaincopy
- //删除数据
- sqlstr="delete from HTable where hid=1";
- sqlite3_exec( pDB, sqlstr , NULL, NULL, &errMsg );
读取数据
[cpp] view
plaincopy
- //回调函数
- 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 );
判断表是否存在
[cpp] view
plaincopy
- //回调函数
- 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;
- }
时间: 2024-08-28 14:00:14