2012-03-12 77 views

Respuesta

68

Desde documentación de la API:


void execSQL (String sql)

ejecutar una única sentencia SQL que NO es un SELECT o cualquier otra instrucción SQL que devuelva datos.

void execSQL (String sql, Object[] bindArgs)

ejecutar una única sentencia SQL que no es un/insertar/ACTUALIZACIÓN seleccionar/borrar.

La documentación es inconsistente pero se comportan de la misma manera. La documentación de este último es más profunda.


Cursor rawQuery (String sql, String[] selectionArgs)

Ejecuta el SQL proporcionado y devuelve un cursor sobre el conjunto de resultados.


usos para rawQuery son:

Usos para execSQL son:

  • usted tiene "instrucciones" para la base de datos. Como CREATE TABLE (o cualquier otra declaración CREATE, p.CREATE INDEX), DROP, PRAGMA s que establecen propiedades en lugar de devolverlos, ...
  • INSERT, UPDATE o DELETE cuando usted no está interesado en la cantidad de filas modificadas o el ID de la última fila de inserción.
  • Todo lo demás que se basa en la ejecución de una declaración.
+0

tiene claro .. execSQL duerma devuelve nada y se utiliza para crear, actualizar, etc .. y rawQuery vuelve cursores etc. –

+0

Muchas gracias por la explicación detallada :) Saludos !!! –

11

si se desea ejecutar algo en la base de datos sin importar su salida (por ejemplo, crear/alterar tablas), a continuación, utilizar execSQL, pero si usted está esperando algunos resultados en la vuelta contra la consulta (por ejemplo, seleccionar registros) a continuación, utilizar rawQuery

Cuestiones relacionadas