最近プログラムを始めた初心者という前提でお願いいたします。
個人的にcocos2d-xを使ってC++でゲームを作っています。
データ管理のためにSQLiteを使っています。
SQLiteでSQLを投げた時になぜか、エラーの分岐に入ってしまいます。
最初は「job_level」までの抽出で、問題なく製造を行えていましたが、
ステータスも取得しようと思い、追加したらエラーになってしまいます。
// characte_infoテーブルから、ユーザーのキャラクターレコードを抽出
std::string sql = "SELECT chara_id, chara_img, name, sex, job, level, job_level, str, agi, vit, int, dex, luk FROM character_info WHERE chara_id in('";
sql += GameManager::getInstance().characterId["chara_1"];
sql += "','";
sql += GameManager::getInstance().characterId["chara_2"];
sql += "','";
sql += GameManager::getInstance().characterId["chara_3"];
sql += "')";
sqlite3_stmt *pStmt = nullptr;
int result = sqlite3_prepare_v2(pDB, sql.c_str(), 128, &pStmt, nullptr);
if (result != SQLITE_OK) {
// sql失敗時
sqlite3_reset(pStmt);
sqlite3_finalize(pStmt);
sqlite3_close(pDB);
CCLOG("sql error!");
return false;
}
下は実際のsqlの中身です。(出力して確認しました。)
SELECT chara_id, chara_img, name, sex, job, level, job_level, str, agi, vit, int, dex, luk FROM character_info WHERE chara_id in('1','2','3')
DBのツールでこれを直接投げたら取得できるのですが、
ソース内で行うとsql失敗の分岐に入ってしまいます。
どなたかご教授よろしくお願いいたします。
※追記
vitまでは抽出できたのですが、intを入れるとエラーになってしまいました。
もしかして、抽出数に制限でもあるのでしょうか?
とりあえず、今は
SELECT * FROM character_info
で解決していますが、
なぜエラーになるのか知りたいです。
回答2件
あなたの回答
tips
プレビュー