Sto usando SQLite (3.6.4) da un'applicazione C++ (utilizzando la API C standard). La mia domanda è: una volta che una query è stata preparata, utilizzando sqlite3_prepare_v2()
e associata ai parametri usando sqlite3_bind_xyz()
- esiste un modo per ottenere una stringa contenente la query SQL originale?Ottieni la query SQL originale dall'istruzione preparata in SQLite
Il motivo è quando qualcosa va storto, mi piacerebbe stampare la query (per il debugging - questa è una app di test solo per sviluppatori interni).
Esempio:
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);
}
punti di bonus se si potrebbe anche stampare i parametri attuali, che era legato. :)
grazie per la risposta, ci provo io –
questo è stato il più lontano possibile senza fare troppe modifiche. Sto accettando perché non sembra essere un modo corretto per fare ciò che volevo originariamente. –