/ / Aggiornamento del database Sqlite in iOS - iPhone, iOS, Object-c

Aggiornamento del database Sqlite in ios - iphone, ios, ogg-c

Aggiorna il database sqlite. Ho provato questo codice ...

 if(sqlite3_exec(dataBase, "VACUUM;", 0, 0, NULL)==SQLITE_OK)
{      NSLog(@"Vacuumed DataBase");

}

Il mio esatto requisito è quando elimino alcuni contenuti quindi aggiorno immediatamente quel sqlite non dopo aver ucciso l'app ....

Ho usato quel codice per aggiornare SQLITE Ma una posizione diversa non esattamente dopo l'inserimento significa che non funziona.

questa funzione non verrà eseguita. Voglio aggiornare il mio Sqlite ...

Quindi, come posso risolvere questo problema, per favore aiutatemi in anticipo grazie. ,,,,

risposte:

1 per risposta № 1

Prova a rimuovere il punto e virgola dal tuo "VACUUM;" dichiarazione:

if (sqlite3_exec(dataBase, "VACUUM", 0, 0, NULL) == SQLITE_OK) {
NSLog(@"Vacuumed DataBase");
}

Penso che l'idea sia che il punto e virgola sia unterminatore solo nel client della riga di comando sqlite3, dove è necessario informare il motore del completamento dell'istruzione. Quando si utilizza l'API C, non è necessario alcun terminatore, poiché l'istruzione completa viene ricevuta da sqlite3_exec(). In effetti, il punto e virgola è un errore in questo caso. Vai a capire.

Inoltre, è necessario gestire gli altri codici SQLITE_XXX.


-1 per risposta № 2

Potresti volere:

  • Aggiorna il tuo database per modificare o eliminare i dati: usa un SQL UPDATE dichiarazione.

  • Controlla una chiamata di funzione: se una funzione nel tuo codice non viene eseguita, controlla se si trova all'interno del blocco di esecuzione di un'istruzione if o se la chiami affatto.

  • Ridurre le dimensioni del file del database SQLite: utilizzare il VACUUM dichiarazione.

Per eseguire qualsiasi istruzione SQLite devi prepararla. Da SQLite.org documentazione di sqlite_prepare:

Per eseguire una query SQL, deve prima essere compilato in un programma di codice byte utilizzando una di queste routine.