cocos2d-x vs2010配置sqlite

在cocos2d-x中一般使用sqlite的c语言绑定,直接下载其源码,下载地址:http://www.sqlite.org/download.html,下载后解压,如下

新建一个项目sqliteTest, 将下载后的sqlite-amalgamation-3070401(这个是我解压后得到的文件夹)文件夹复制到刚才新建的项目class文件夹里面,然后

右击sqliteTest项目->属性->配置属性->C/C++->常规->附加包含目录->编辑,打开“附加包含目录”对话框进行修改,然后保存配置,截图如下:

截图中的列表框中的最后一行就是我刚才添加的一个目录。

下一步,将开始下载的源文件添加到项目中去,右击项目->添加->现有项,全选那四个源文件,然后添加,

 

然后,测试一下是否配置成功,直接上源码了:

 1 #include "HelloWorldScene.h"
 2 #include "sqlite3.h"
 3 
 4 using namespace cocos2d;
 5 
 6 CCScene* HelloWorld::scene()
 7 {
 8     CCScene * scene = NULL;
 9     do 
10     {
11         // 'scene' is an autorelease object
12         scene = CCScene::create();
13         CC_BREAK_IF(! scene);
14 
15         // 'layer' is an autorelease object
16         HelloWorld *layer = HelloWorld::create();
17         CC_BREAK_IF(! layer);
18 
19         // add layer as a child to scene
20         scene->addChild(layer);
21     } while (0);
22 
23     // return the scene
24     return scene;
25 }
26 
27 // on "init" you need to initialize your instance
28 bool HelloWorld::init()
29 {
30     bool bRet = false;
31     do 
32     {
33         //////////////////////////////////////////////////////////////////////////
34         // super init first
35         //////////////////////////////////////////////////////////////////////////
36 
37         CC_BREAK_IF(! CCLayer::init());
38 
39         sqlite3* pDB = NULL;   //数据库指针4
40 
41         char *errMsg;   //错误信息
42         std::string sqlStr;  //sql指令
43         int result;   //sql_exec返回指令
44 
45         result = sqlite3_open("news.db", &pDB);
46 
47         if (result != SQLITE_OK)
48         {
49             CCLOG("fali errCode:%d   errMsg:%s", result, errMsg);
50         }
51 
52         result = sqlite3_exec(pDB, "create table Tabel_1(ID integer primary key autoincrement, name nvarchar(32), class nvarchar(32))", NULL, NULL, &errMsg);
53         if (result != SQLITE_OK)
54         {
55             CCLOG("fail  code:%d  errMsg:%s", result, errMsg);
56         }
57         
58         //insert data
59         sqlStr = "insert into Tabel_1(name, class) values ('money', 'world')";
60         result = sqlite3_exec(pDB, sqlStr.c_str(), NULL, NULL, &errMsg);
61         if (result != SQLITE_OK)
62         {
63             CCLOG("fail  errCode:%d    errMsg:%s", result, errMsg);
64         }
65 
66 
67         
68         sqlite3_close(pDB);
69 
70 
71         bRet = true;
72     } while (0);
73 
74     return bRet;
75 }
76 
77 void HelloWorld::menuCloseCallback(CCObject* pSender)
78 {
79     // "close" menu item clicked
80     CCDirector::sharedDirector()->end();
81 }

 

  将项目设为启动项,然后运行(已经测试,可以使用),然后打开项目下面的Resource文件夹查看运行结果,数据库文件news.db成功生成:

如果想打开这个文件查看一下,就得下载SQLite Database Browser,下载地址:http://sourceforge.net/projects/sqlitebrowser/

用这个工具打开news.db,截图如下:

ok,记录也有了。

备注:我的db里面的ID为2是因为之前插入数据错了,然后把记录删掉后再次插入的,嘿嘿

 

posted @ 2012-11-25 12:14  驴车手  阅读(627)  评论(0编辑  收藏  举报