Ho bisogno di memorizzare un record utilizzando il metodo rawQuery
, perché voglio inserire la data e l'ora correnti (datetime()
), ma devo anche inserire stringhe che contengono virgolette.Come utilizzare rawQuery per inserire un record
Così ho scritto questo codice:
String sql="INSERT INTO sms VALUES (null, ?1, ?2, ?3, datetime())";
dbw.rawQuery(sql, new String[]{str1,str2,str3});
Ma non memorizza nulla ... cosa c'è di sbagliato?
[EDIT]
In questo modo non ottengo errori, ma non è inserito il record.
String mitt="mitt", dest="dest", text="text";
String sql="INSERT INTO sms VALUES (null, ?, ?, ?, datetime('NOW'))";
dbw.rawQuery(sql, new String[]{mitt,dest,text});
In questo momento, l'unico metodo che funziona per inserire un record (con il problema virgolette) è execSQL(String s)
.
Ho modificato la domanda – supergiox
È possibile che rawQuery non funzioni con INSERT? La documentazione non dice nulla al riguardo – supergiox
Niente ... questo è il metodo che funziona (eccepito per le virgolette): 'String sql =" INSERT INTO sms VALUES (null, '"+ mitt +"', '"+ dest +" ',' "+ text +" ', datetime (' NOW ')) "; dbw.execSQL (sql); ' – supergiox