Cocos2d 使用Sqlite

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

包含头文件:

#include "sqlite3.h"

创建或打开数据库:

[cpp] view
plain
copy

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

在Resources目录中可以看到出现了一个game.db的数据库文件。

插入数据

[cpp] view
plain
copy

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

打开game.db看以看到:

更新数据

[cpp] view
plain
copy

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

删除数据

[cpp] view
plain
copy

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

读取数据

[cpp] view
plain
copy

  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 );

判断表是否存在

[cpp] view
plain
copy

  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. bool HSqlite::isExisted4Table()
  10. {
  11. bool b;
  12. char* sqlstr="select count(type) from sqlite_master where type=‘table‘ and name=‘HTable‘";
  13. sqlite3_exec( pDB, sqlstr , isExisted, &b, &errMsg);
  14. return b;
  15. }
时间: 2024-08-28 14:00:14

Cocos2d 使用Sqlite的相关文章

Visual Studio下SQLite数据库开发环境设置

因为我们介绍的内容都是基于微软的Visual Studio下开发的Win32平台,所以下边我们介绍Visual Studio下SQLite数据库开发环境设置. 详细而言我们有两种方式能够在Visual Studio中SQLite数据库:使用SQLite源码文件和使用Cocos2d-x提供的库文件.1.使用SQLite源码文件SQLite是C编写的开源的数据库,我们能够在http://www.sqlite.org/download.html网址下载最新的SQLite源码,如我下载的sqlite-a

Win7+VS2010+cocos2d-x 2.1 Beta3+Sqlite工程向android平台移植

Win7+VS2010+cocos2d-x 2.1 Beta3+Sqlite工程向android平台移植 题外话: 有时打开博客想写点什么时,心中感到有点酸楚,尽管语言不那么精简,或者说是准确,而且很可能文中的总结极不成熟,甚至还夹带些错误:但是,它们毕竟是自 己经过"痛苦"的挣扎后取得的一点成绩,于是,还是下决心记下来,一方面充实了自己尘封的笔记,另一方面也不敢独享-因为我看到有那么多的朋友把自己的心 血也无保留地奉献出来.或许,我的这一点一滴也能成为他们决战BUGS中的LITTLE

SQLite集成与用法

本文转载至 http://cn.cocos2d-x.org/article/index?type=cocos2d-x&url=/doc/cocos-docs-master/manual/framework/native/v3/sqlite/zh.md 概述 在Cocos2d-x中,简单数据存储,可以使用UserDefault.那么如何存储大量,不规则的数据?我们可以使用SQLite数据库存储数据.SQLite是使用非常广泛的嵌入式数据库,它有小巧 .高效.跨平台.开源免费和易操作的特点. SQL

(26)SQLite集成与用法

概述 在Cocos2d-x中,简单数据存储,可以使用UserDefault.那么如何存储大量,不规则的数据?我们可以使用SQLite数据库存储数据.SQLite是使用非常广泛的嵌入式数据库,它有小巧 .高效.跨平台.开源免费和易操作的特点. SQLite数据库是使用C语言来编写的,那么在Cocos2d-x使用SQLite也是得心应手. 准备 首先创建一个Cocos2d-x v3.x的helloworld工程,我们将以该工程作为SQLite集成与用法的实战工程. 打开终端,使用如下命令新建工程:

cocos2dx sqlite第三方库的资源保存和调用

sqlite3是一个简单的前端数据库,对于一些动作和前段保存数据比较多的游戏使用还是很方便 #ifndef __Sqlite3Test__DataBaseHelper__ #define __Sqlite3Test__DataBaseHelper__ #include <iostream> #include "sqlite3.h" #include <vector> #include <string> #define DBNOTFOUND INT_M

Cocos2d C++ 解析CSV

1.什么是CSV Id,主题关卡名字,主题背景音乐,主题背景图片, 1,关卡名字1,test.mp3,test.png, 2,关卡名字2,test.mp3,test.png, 3,关卡名字3,test.mp3,test.png, 就是以英文','作为分隔符的文件.这种结构有点像数据库表的结构,因为非常简单,所以适用范围比较广,Excel可以导出CSV, Sqlite 等数据库也可以导出CSV. 在游戏开发中,这个文件一般给策划来进行编辑,修改数值后很容易测试,不需要编译游戏.我个人是比较喜欢脚本

Android sqlite cursor的遍历

查询并获得了cursor对象后,用while(corsor.moveToNext()){}遍历,当corsor.moveToNext()方法调用,如果发现没有对象,会返回false public List<MMImage> getAll() { List<MMImage> list = new ArrayList<MMImage>(); Cursor c = null; try { c = database.query(TABLE, null, null, null,

在Android程序中使用已有的SQLite数据库

已经将这篇文章迁移至 Code问答,你也能够到这里查看这篇文章,请多多关注我的新技术博客CodeWenDa.com 在中文搜索中,没有找到一篇比較好的关于怎样在Android应用中使用自己事先创建好的数据库的文章,于是在谷歌上找到这篇英文文章,依照它的步骤,測试成功.决定把这篇文章大致的翻译一下,想看原文的能够点击这里:http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/ .

Android中使用SQLite

Android系统内置了对SQLite数据库的支持,并提供了帮助类SQLiteOpenHelper.我们在开发时需要新建一个类继承SQLiteOpenHelper,并重写onCreate和onUpdate方法.onCreate方法仅在第一次新建数据库时调用,主要做创建表的操作.onUpdate方法在数据库版本更新时调用,根据业务需要做一些表的创建.删除.表结构改变等操作.同时需要实现一个构造函数,向父类的构造函数传入上下文对象.数据库名称.游标工厂和版本号.以下是一个简单的示例: 1 publi