2010-08-22 8 views
5

Voglio incrementare una colonna in un database Android sqlite. Sto facendo in questo modo:Come incrementare il campo nel database Android sqlite

public void atualiza(String word){ 
    this.db.rawQuery("UPDATE words SET count = count + 1 WHERE word= ? ", new String[] {word});  
} 

E Io chiamo questo metodo su un'altra classe in questo modo:

this.dh.atualiza(word); 

Ma quando tiro il database dal emulatore e verificare con il Browser SQLite database, il campo è non incrementato. Perché?

+0

come circa se si fa una selezione da all'interno del codice (selezionare conta dalle parole dove word =?), restituisce il valore corretto? (stai sicuramente cercando il database giusto?) –

+1

Penso che 'rawQuery' restituisca un codice di errore. Puoi controllare di cosa si tratta? Inoltre, gli aggiornamenti dovrebbero essere eseguiti con execSQL. – MPelletier

risposta

0

È necessario avviare una transazione sul database Data not inserting in Sqlite database in android

+0

Devo precisare che quando le transazioni non sono specificate, SQLite si distingue. – MPelletier

+0

Hmm .. conosci bene i documenti android su questa funzione? Apprezzerei molto un link. –

+0

È una funzionalità di SQLite, non tanto quanto Android, ma qui è il documento ufficiale: http://sqlite.org/lang_transaction.html: "Non è possibile apportare modifiche al database tranne all'interno di una transazione. il database (in pratica qualsiasi comando SQL diverso da SELECT) avvierà automaticamente una transazione se non ne è già in vigore. Le transazioni avviate automaticamente vengono confermate al termine dell'ultima query. " – MPelletier