Skip to content

cocos2d-xでsqlite3を動かして値を取得する

2012年12月4日

前回のは動かすまでだったんだけど、今回は値を取得できたのでメモ。

正直、前回のをSelectに変えとけば楽勝だろ!とか思ってたんだけど甘くなかった。

コールバックに使うメソッドではthisを使うことができず、

ってことはgetchildbytagが使えなくってってことはラベルに反映できないってことで…と芋づる式によくわかんないことに。

なんとか引っ張り出すことができないかと悩んで質問した結果、ヒントを頂いてやっとできました。

それが以下となります。


sqlite3 *database = NULL;
    string dbPath = CCFileUtils::sharedFileUtils()->getWriteablePath();
    dbPath.append("Settings.db");
    if ((sqlite3_open(dbPath.c_str(), &database) != SQLITE_OK)) {
        // error
    }

    sqlite3_stmt *stmt = NULL;
    string sql = "select * from MyTable_1 where ID=3";
    if (sqlite3_prepare_v2(database, // db
                           sql.c_str(), //sql
                           -1, //バイト長
                           &stmt, //ステートメントハンドル
                           NULL) == SQLITE_OK) {

        while (sqlite3_step(stmt) == SQLITE_ROW) {
            int hoge = (int)sqlite3_column_int(stmt, 0);
            CCLog("LOG :: %d",hoge);
            CCLog("%s",sqlite3_column_text(stmt, 1));

            label->setString((const char*)(sqlite3_column_text(stmt, 1)));

        }
    }

    sqlite3_reset(stmt);
    sqlite3_finalize(stmt);
    sqlite3_close(database);

これでなんとかDBから読みだしてラベルに当て込む事ができました!

これに関して、ヒントを下さったFacebookのcocos2d Developersのメンバーの皆さんにほんとうに感謝です!

ありがとうございました!

広告

From → cocos2d, cocos2d-x

コメントする

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。