天天看點

SQLite的使用二

(這裡講的是如何在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()-&gt;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>, &amp;re, &amp;r, &amp;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&lt;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-&gt;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()-&gt;getvisiblesize();</code>

<code>    </code><code>//auto size = director::getinstance()-&gt;getwinsize();</code>

<code>    </code><code>//建立sqlite資料庫檔案</code>

<code>    </code><code>//打開一個資料庫檔案,如果不存在則建立</code>

<code>    </code><code>result = sqlite3_open(path.c_str(), &amp;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>