Sto scrivendo un codice C++ che utilizza la libreria sqlite3. Sto usando un'istruzione preparata a cui associo una variabile in fase di esecuzione.istruzioni preparate in sqlite - come eseguire il debug
Come si esamina la query SQL nella dichiarazione dopo i binding?
Ad esempio, il codice riportato di seguito non restituisce una riga. Quando utilizzo una stringa premade e sqlite3_exec, ottengo i risultati che mi aspetto.
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: Come Ferdinand sotto enunciati, il problema nella query di cui sopra è le virgolette intorno al?. Tuttavia, per il futuro, mi piacerebbe ancora sapere come ispezionare sqlite3_stmt per la query effettiva che verrà eseguita.
Siamo spiacenti, ha avuto un errore di battitura quando scrivi la domanda. Quindi, no, non è questo il vero problema, mi spiace –
Credo che sia richiesto il punto e virgola –