• cocos2dx 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是因为之前插入数据错了,然后把记录删掉后再次插入的,嘿嘿

  • 相关阅读:
    C#在winform上实现关于treeview与listview结合项目应用
    C#自学总结_Day2
    Base64 替换 BASE64Encoder
    MySql添加用户
    C#多线程服务,控制最大线程并发和最小线程并发
    C#/.net 移除URL上指定的参数,不区分参数大小写
    C#.NET根据数据库中0,1返回对应代表含义“男”,“女”等问题
    d3 学习记录-----network实现
    c#判断串口是否断开,并自动重连
    winform Anchor和Dock属性
  • 原文地址:https://www.cnblogs.com/arthas/p/2787412.html
Copyright © 2020-2023  润新知