Como sabemos los desarrolladores de Android, el método SQLiteDatabaseexecSQL
solo puede ejecutar una instrucción.Ejecución de consulta SQL por lotes eficiente en Android, para la base de datos de actualización
El doctor dice:
ejecutar una única sentencia SQL que no es una consulta. Por ejemplo,
CREATE TABLE
,DELETE
,INSERT
, etc. No se admiten varias instrucciones separadas por;
s.
Tengo que cargar en un lote de registros, 1000 y contando.
¿Cómo los inserto de manera eficiente?
¿Y cuál es la forma más fácil de entregar estos SQL con su apk?
Menciono que ya existe una base de datos del sistema y la ejecutaré en el evento onUpdate
.
tengo este código hasta ahora:
List<String[]> li = new ArrayList<String[]>();
li.add(new String[] {
"-1", "Stop", "0"
});
li.add(new String[] {
"0", "Start", "0"
});
/* the rest of the assign */
try {
for (String[] elem : li) {
getDb().execSQL(
"INSERT INTO " + TABLENAME + " (" + _ID + "," + NAME + "," + PARSE_ORDER
+ ") VALUES (?,?,?)", elem);
}
} catch (Exception e) {
e.printStackTrace();
}
he documentado con respecto a este problema, y todas las soluciones se basan exclusivamente en el hecho de que se crea una nueva base de datos. Pero necesito esto en la actualización, por lo que reemplazar la base de datos existente no es bueno, tengo que mantener las cosas del usuario allí. – Pentium10
No hay ninguna razón por la que no pueda usar dos bases de datos: una base de datos de usuario y una base de datos de información estática. De esta forma, podría reemplazar completamente la base de datos estática luego de la actualización y dejar intactos los datos del usuario. –