Я пишу код на C ++, который использует библиотеку sqlite3. Я использую подготовленный оператор, к которому привязываю переменную во время выполнения.
Как проверить SQL-запрос в операторе после привязок?
Например, приведенный ниже код не возвращает строку. При использовании готовой строки и sqlite3_exec я получаю ожидаемые результаты.
sqlite3_stmt *statement;
const char *query = "SELECT * FROM foo WHERE (name='?');";
sqlite3_prepare_v2(db, query, strlen(query), &statemtnt, NULL);
sqlite3_bind_text(statement, 1, "bar", -1, SQLITE3_STATIC);
int result = sqlite3_step(statement);
// expected: result = SQLITE_ROW
// actual: result = SQLITE_DONE
edit: Как сказал Фердинанд ниже, проблема в приведенном выше запросе заключается в кавычках вокруг?. Однако в будущем я все еще хотел бы знать, как проверить sqlite3_stmt на предмет фактического запроса, который будет выполнен.