(這裡講的是如何在cocos2d-x引擎中使用sqlite資料庫)
3、建立一個cocos2d-x工程,将sqlite頭檔案添加到工程中,同時在程式中包含頭檔案:
<a href="http://my.oschina.net/jacedy/blog/313924#">?</a>
1
2
<code>#include "gamescene.h"</code>
<code>#include "sqlite3.h" //加入頭檔案</code>
建立sqlite資料庫檔案
3
4
5
<code> </code><code>sqlite3 *pdb = null; </code><code>//資料庫對象</code>
<code> </code><code>std::string path = fileutils::getinstance()->getwritablepath() + </code><code>"test4.db"</code><code>; </code><code>//儲存路徑</code>
<code> </code>
<code> </code><code>std::string sqlstr; </code><code>//sql語句</code>
<code> </code><code>int</code> <code>result;</code>
<code> </code><code>log</code><code>(</code><code>"%s"</code><code>, path.c_str()); </code><code>///users/mac/library/application\ support/iphone\ simulator/7.1-64/applications/7b6164de-7e7a-4c70-980b-2b548ab3774a/documents/</code>
打開一個資料庫檔案,如果不存在則建立
<code> </code><code>result = sqlite3_exec(pdb, </code><code>"create table student1(id integer, name text, sex text)"</code><code>, null, null, null);</code>
<code> </code><code>if</code><code>(result != sqlite_ok)</code>
<code> </code><code>log</code><code>(</code><code>"create table faild"</code><code>);</code>
<code> </code><code>else</code>
<code> </code><code>log</code><code>(</code><code>"create table success"</code><code>);</code>
插入操作
6
<code> </code><code>sqlstr = </code><code>"insert into student1(id, name, sex) values(1, 'jiazedong', 'male')"</code><code>;</code>
<code> </code><code>result = sqlite3_exec(pdb, sqlstr.c_str(), null, null, null);</code>
<code> </code><code>log</code><code>(</code><code>"insert data faild"</code><code>);</code>
<code> </code><code>log</code><code>(</code><code>"insert data success"</code><code>);</code>
查詢操作
7
8
9
<code> </code><code>char</code> <code>**re;</code>
<code> </code><code>int</code> <code>r, c;</code>
<code> </code><code>sqlite3_get_table(pdb, </code><code>"select * from student1"</code><code>, &re, &r, &c, null);</code>
<code> </code><code>log</code><code>(</code><code>"row is %d, column is %d"</code><code>, r, c);</code>
<code>// log(re[2*c+1]);</code>
<code> </code><code>for</code><code>(</code><code>int</code> <code>i=0; i<r; i++)</code>
<code> </code><code>log</code><code>(</code><code>"%s"</code><code>, re[i]);</code>
關閉資料庫
<code> </code><code>sqlite3_close(pdb);</code>
完整代碼:
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<code>// created by jacedy on 14-8-11.</code>
<code>//</code>
<code>using_ns_cc;</code>
<code>cocos2d::scene* gamescene::createscene()</code>
<code>{</code>
<code> </code><code>auto</code> <code>scene = scene::create(); </code><code>//建立一個場景</code>
<code> </code><code>auto</code> <code>layer = gamescene::create(); </code><code>//建立一個圖層</code>
<code> </code><code>scene->addchild(layer);</code>
<code> </code><code>return</code> <code>scene;</code>
<code>}</code>
<code>//初始化目前的圖層</code>
<code>bool</code> <code>gamescene::init()</code>
<code> </code><code>if</code><code>(!layer::init()) </code><code>//初始化父類</code>
<code> </code><code>return</code> <code>false</code><code>;</code>
<code> </code><code>//擷取螢幕大小</code>
<code> </code><code>size = director::getinstance()->getvisiblesize();</code>
<code> </code><code>//auto size = director::getinstance()->getwinsize();</code>
<code> </code><code>//建立sqlite資料庫檔案</code>
<code> </code><code>//打開一個資料庫檔案,如果不存在則建立</code>
<code> </code><code>result = sqlite3_open(path.c_str(), &pdb);</code>
<code> </code><code>log</code><code>(</code><code>"open databases faild %d"</code><code>, result);</code>
<code> </code><code>log</code><code>(</code><code>"open databases success %d"</code><code>, result);</code>
<code> </code><code>//建立表</code>
<code> </code><code>//插入操作</code>
<code> </code><code>sqlstr = </code><code>"insert into student1(id, name, sex) values(2, 'jiazedong', 'male')"</code><code>;</code>
<code> </code><code>//查詢操作</code>
<code>// sqlite3_free_table(re);</code>
<code> </code><code>//關閉資料庫</code>
<code> </code><code>return</code> <code>true</code><code>;</code>