2012-03-12 17 views

risposta

68

Da documentazione API:


void execSQL (String sql)

eseguire una singola istruzione SQL che NON è un SELECT o qualsiasi altra istruzione SQL che restituisce i dati.

void execSQL (String sql, Object[] bindArgs)

eseguire una singola istruzione SQL che non è una SELECT/INSERT/UPDATE/DELETE.

La documentazione è incoerente ma si comportano allo stesso modo. La documentazione di quest'ultimo è più approfondita.


Cursor rawQuery (String sql, String[] selectionArgs)

Esegue l'SQL fornito e restituisce un cursore sopra il set di risultati.


Utilizzi per rawQuery sono:

Utilizza per execSQL sono:

  • si dispone di "istruzioni" per il database. Ad esempio CREATE TABLE (o qualsiasi altra istruzione CREATE, ad es.CREATE INDEX), DROP, PRAGMA s che impostano le proprietà piuttosto che restituirli, ...
  • INSERT, UPDATE o DELETE quando non sei interessato alla quantità di righe modificate o l'id riga dell'ultima inserto.
  • Tutto il resto che si basa su l'esecuzione di una dichiarazione.
+0

chiarito .. execSQL non restituisce nulla e utilizzato per la creazione, l'aggiornamento ecc. e rawQuery restituisce i cursori ecc. –

+0

Grazie mille per la spiegazione dettagliata :) Saluti !!! –

11

se si desidera eseguire qualcosa nel database senza riguardante la sua uscita (ad esempio, creare/modificare tabelle), quindi utilizzare execSQL, ma se vi aspettate alcuni risultati in cambio contro la query (ad esempio selezionare i record), allora utilizzare rawQuery

Problemi correlati