質問: 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 で解決していますが、 なぜエラーになるのか知りたいです。
回答: SQL文のバイト数に-1を指定すると制限なしに出来ます。 無制限が怖ければ、2048とか十分な長さを指定すれば良いです。 ``` int result = sqlite3_prepare_v2(pDB, sql.c_str(), -1, &pStmt, nullptr); ```