cocos2d-x2.1.2下使用sqlite3的例子
来源:互联网 发布:索尼移动电源 知乎 编辑:程序博客网 时间:2024/06/16 05:14
首先,将这两个文件导入到工程当中,后面会给大家下载地址,当然也可以去官网上下载。
在HelloWorldScene.h中导入头文件:
#include "sqlite3.h"
之后声明如下函数和成员
// there's no 'id' in cpp, so we recommend to return the class instance pointer static cocos2d::CCScene* scene(); //保存路径 std::string path; //sql语句 std::string sql; //数据库对象 sqlite3 *pdb; //记录返回结果是否成功 int result; //创建表 void createTable(); //插入数据 void insertData(); //查看数据 void LookUpData(); //删除数据 void deleteData();
在HelloWorldScene.cpp中插入如下代码:
// on "init" you need to initialize your instancebool HelloWorld::init(){ ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } pdb=NULL; CCLabelTTF* createLabel = CCLabelTTF::create("创建表", "Arial", 24); CCMenuItemLabel* createItem = CCMenuItemLabel::create(createLabel, this, menu_selector(HelloWorld::createTable)); CCMenu* createMenu = CCMenu::create(createItem,NULL); createMenu->setPosition(ccp(100, 300)); this->addChild(createMenu); CCLabelTTF* insertLabel = CCLabelTTF::create("插入数据", "Arial", 24); CCMenuItemLabel* insertItem = CCMenuItemLabel::create(insertLabel, this, menu_selector(HelloWorld::insertData)); CCMenu* insertMenu = CCMenu::create(insertItem,NULL); insertMenu->setPosition(ccp(100, 200)); this->addChild(insertMenu); CCLabelTTF* lookUpLabel = CCLabelTTF::create("查看数据", "Arial", 24); CCMenuItemLabel* lookUpItem = CCMenuItemLabel::create(lookUpLabel, this, menu_selector(HelloWorld::LookUpData)); CCMenu* lookUpMenu = CCMenu::create(lookUpItem,NULL); lookUpMenu->setPosition(ccp(100, 100)); this->addChild(lookUpMenu); CCLabelTTF* deleteLabel = CCLabelTTF::create("删除数据", "Arial", 24); CCMenuItemLabel* deleteItem = CCMenuItemLabel::create(deleteLabel, this, menu_selector(HelloWorld::deleteData)); CCMenu* deleteMenu = CCMenu::create(deleteItem,NULL); deleteMenu->setPosition(ccp(200, 100)); this->addChild(deleteMenu); return true;}//创建表void HelloWorld::createTable(){ //获取保存路径 + 保存文件名 path=CCFileUtils::sharedFileUtils()->getWritablePath() +"save.db"; std::cout<<"path"<<path<<std::endl; //std::string sql; result=sqlite3_open(path.c_str(),&pdb); if(result!=SQLITE_OK) CCLog("open database failed, number%d",result); //创建表的方法 result=sqlite3_exec(pdb,"create table student(ID integer primary key autoincrement,name text,sex text)",NULL,NULL,NULL); if(result!=SQLITE_OK) CCLog("create table failed1"); sqlite3_close(pdb); }//插入数据void HelloWorld::insertData(){ result=sqlite3_open(path.c_str(),&pdb); if(result!=SQLITE_OK) CCLog("open database failed, number%d",result); sql="insert into student values(1,'changmen','male')"; result=sqlite3_exec(pdb,sql.c_str(),NULL,NULL,NULL); if(result!=SQLITE_OK) CCLog("insert data failed!"); sql="insert into student values(2,'xiaonan','female')"; result=sqlite3_exec(pdb,sql.c_str(),NULL,NULL,NULL); if(result!=SQLITE_OK) CCLog("insert data failed!"); sql="insert into student values(3,'peien','male')"; result=sqlite3_exec(pdb,sql.c_str(),NULL,NULL,NULL); if(result!=SQLITE_OK) CCLog("insert data failed!"); }//删除数据void HelloWorld::deleteData(){ sqlite3_open(path.c_str(), &pdb); sql="delete from student where ID=1"; result=sqlite3_exec(pdb,sql.c_str(), NULL,NULL,NULL); if(result!=SQLITE_OK) CCLog("delete data failed!");}//查看数据void HelloWorld::LookUpData(){ char **re; int r = 0,c = 0; sqlite3_get_table(pdb,"select * from student",&re,0,0,NULL); CCLog("row is %d,column is %d",r,c); CCLabelTTF *liu=CCLabelTTF::create(re[7],"Arial",24); liu->setPosition(ccp(200,200)); addChild(liu,1); CCLog(re[2*c+1]); sqlite3_free_table(re); sqlite3_close(pdb); }
运行结果如下
代码例子下载: http://vdisk.weibo.com/s/BDn59yfnBU_2k
- cocos2d-x2.1.2下使用sqlite3的例子
- cocos2d-x2.1 GUI控件的使用
- python使用sqlite3的例子
- c++使用sqlite3的例子
- cocos2d-x GUI控件的使用(cocos2d-x2.1)
- cocos2d-x 下使用加密 sqlite3
- cocos2d-x 下使用加密 sqlite3
- Ubuntu12.04+eclipse下cocos2d-x2.2环境的搭建
- Ubuntu12.04+eclipse下cocos2d-x2.2环境的搭建
- cocos2d-x2.0后增加的新功能,slider的使用
- Cocos2d-x2.1.4的android环境配置及使用
- Cocos2d-x2.1.4的android环境配置及使用
- 使用批处理文件配置Cocos2D-X2.1.2 + VS 2012
- 使用批处理文件配置Cocos2D-X2.1.2 + VS 2012
- linux下sqlite3的使用
- linux下sqlite3的使用
- cocos2d-x sqlite3使用整理
- cocos2d-x2.2.3生成的工程在android下编译出错
- Linux中如何保存未命名vim
- android cocos2d-x libjson
- 比较常用的网站
- 名言录(古,治学)
- 筹码分布算法
- cocos2d-x2.1.2下使用sqlite3的例子
- 代码疑云(6)-头文件的正确定义
- svn 合并
- jQuery验证控件jquery.validate.js使用说明+中文API
- 代码疑云(7)-构造函数在类继承时
- 【Win7移动中心是什么如何打开以及关闭】
- 揭秘各个显示器尺寸
- MEF学习系列(1) MEF是什么
- 代码疑云(8)-逻辑符号间的逻辑