Estoy escribiendo un código C++ que usa la biblioteca sqlite3. Estoy usando una declaración preparada a la que ato una variable en tiempo de ejecución.declaraciones preparadas sqlite - cómo depurar
¿Cómo examino la consulta SQL en la declaración después de las consolidaciones?
Por ejemplo, el código siguiente no devuelve una fila. Cuando uso una cadena prefabricada y sqlite3_exec, obtengo los resultados que espero.
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
editar: Como dijo Ferdinand a continuación, el problema en la consulta anterior es las citas en torno al?. Sin embargo, para el futuro, aún me gustaría saber cómo inspeccionar sqlite3_stmt para la consulta real que se ejecutará.
Lo sentimos, tenía un error tipográfico al escribir la pregunta. Entonces, no, ese no es el problema real, lo siento –
Creo que se requiere el punto y coma –