Estoy usando SQLite (3.6.4) desde una aplicación C++ (usando la API C estándar). Mi pregunta es: una vez que se ha preparado una consulta, usando sqlite3_prepare_v2()
, y enlazado con parámetros usando sqlite3_bind_xyz()
, ¿hay alguna forma de obtener una cadena que contenga la consulta SQL original?Obtener la consulta SQL original desde la instrucción preparada en SQLite
La razón es que cuando algo sale mal, me gustaría imprimir la consulta (para la depuración, esta es una aplicación de prueba para desarrolladores internos).
Ejemplo:
sqlite3_prepare_v2(db, "SELECT * FROM xyz WHERE something = ? AND somethingelse = ?", -1, &myQuery, NULL);
sqlite3_bind_text(myQuery, 1, mySomething);
sqlite3_bind_text(myQuery, 2, mySomethingElse);
// ....
// somewhere else, in another function perhaps
if (sqlite3_step(myQuery) != SQLITE_OK)
{
// Here i'd like to print the actual query that failed - but I
// only have the myQuery variable
exit(-1);
}
puntos de bonificación si también podría imprimir los parámetros reales que estaba destinada. :)
gracias por la respuesta, lo intentaré –
esto fue todo lo que se pudo hacer sin hacer demasiado hackeo. Estoy aceptando, ya que no parece haber una manera adecuada de hacer lo que originalmente quería. –