Sai perché ricevo "Routine di libreria chiamata di sequenza" quando chiamo sqlite3_prepare_v2(CREATE TABLE)
in un database vuoto?"Routine di libreria chiamata fuori sequenza" sqlite3_prepare_v2 (CREATE TABLE)
Creo un database vuoto e quindi lo apro. Successivamente, salverò tutte le informazioni che devono essere scritte nel database nella RAM (ho bisogno di salvare quelle informazioni nella RAM e di scaricarle nella memoria permanente alla fine dell'esecuzione), ma ricevo questo messaggio di errore quando chiamo sqlite3_prepare_v2(CREATE TABLE)
. Restituisce "Routine di libreria chiamata fuori sequenza" come messaggio di errore.
io apro il mio database correttamente e (ho pensato che può essere un problema così ho fatto il mio close()
DB e poi open()
a destra prima di chiamare sqlite3_prepare_v2(CREATE TABLE)
). Ho pensato che potrebbe essere a causa della concomitanza di thread, ma l'utilizzo della sezione critica non ha aiutato troppo.
Mark grazie mille questo esempio ha aiutato. Ho ancora una domanda (scusa se è troppo sciocco, ma sono nuovo di sql). Quando scrivi per nome database char * db_name = ": memoria:"; rc = sqlite3_open (db_name, verrà creato &db); questo significa che base di dati in RAM? Se questo è il caso si può spiegare come alla fine di questo codice posso irrigare file di database di memorizzazione permanente? – user1079655
+1 per rimanendo con esso fino alla fine :) –