Я пишу код C++, который использует библиотеку sqlite3. Я использую подготовленный оператор, к которому я привязываю переменную во время выполнения.sqlite подготовленные операторы - как отлаживать
Как проверить 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
Редактировать: Как указано Фердинандом ниже, проблема в запросе выше - это цитаты вокруг. Однако в будущем мне все равно хотелось бы узнать, как проверить sqlite3_stmt для фактического запроса, который будет выполнен.
К сожалению, была опечатка при написании вопроса. Итак, нет, это не настоящая проблема, извините –
Я считаю, что нужна запятая –