mardi 27 octobre 2015

save in local database

I'm having some problems when trying to save data to my local DB with android. What I'm doing a tour I get a settlement by consulting a WS that I have for each record and do an insert into my database.

JSONArray array = json.getJSONArray("Inscripciones");
totales = array.length();
for (int i = 0; i < array.length(); i++) {
     JSONObject inscripcion = (JSONObject) array.get(i);
     if(inscripcion.getString("validado").equals("0")){
        validadas++;
     }
     RowItem item = new RowItem(inscripcion.getString("nombre"),inscripcion.getString("ticket"), inscripcion.getString("asiento") , inscripcion.getString("numero"),images[0] , Integer.parseInt(inscripcion.getString("inscripcion_id")), inscripcion.getString("hash"), Integer.parseInt(inscripcion.getString("validado")), inscripcion.getString("adicionales"), inscripcion.getString("otros"), inscripcion.getString("categoria"));
     rowItems.add(item);
     nueva.guardarInscripcionInternet(
                 ValidacionMultiple.this,
                 inscripcion.getString("hash"),
                 inscripcion.getString("codigo_evento"),
                 inscripcion.getString("ticket"),
                 inscripcion.getString("nombre"),
                 inscripcion.getString("inscripcion_id"),
                 inscripcion.getString("numero"),
                 inscripcion.getString("asiento"),
                 inscripcion.getString("adicionales"),
                 inscripcion.getString("otros"),
                 inscripcion.getString("categoria"),
                 codigoUser,
                 inscripcion.getString("rut_clean"),
                 inscripcion.getString("talla"));
}

I have used many times this way to insert data but this time without success, I get this message:

10-27 15:39:43.095: W/SQLiteConnectionPool(23097): A SQLiteConnection object for database '+data+data+com_eventrid_scanner+databases+EventridDB' was leaked!  Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.

This is the function code that inserts record by record, as you can see close the database every time I finish insert.

public void guardarInscripcionInternet(Context context,String hash, String codigo_evento, String ticket, String nombre, String inscripcion_id, String numero, String asiento, String adicionales, String otros , String categoria,String codigo_user,String rut, String talla){
    SessionManager manager = new SessionManager();
    String nombreUser = manager.getValue(context,"nombreUser");
    bdTickets = new TicketsBaseDatos(context, Config.NAME_DATABASE, null, 1);
    SQLiteDatabase db = bdTickets.getWritableDatabase();
    ContentValues nuevoRegistro = new ContentValues();
    nuevoRegistro.put("hash", hash);
    nuevoRegistro.put("codigo_evento", codigo_evento);
    nuevoRegistro.put("ticket",ticket);
    nuevoRegistro.put("nombre",nombre);
    nuevoRegistro.put("inscripcion_id",inscripcion_id);
    nuevoRegistro.put("validado", 0);
    nuevoRegistro.put("sincronizado", 0);
    nuevoRegistro.put("numero", numero);
    nuevoRegistro.put("asiento", asiento);
    nuevoRegistro.put("adicionales", adicionales);
    nuevoRegistro.put("otros", otros);
    nuevoRegistro.put("categoria", categoria);
    nuevoRegistro.put("codigo_usuario", codigo_user);
    nuevoRegistro.put("rut", rut);
    nuevoRegistro.put("talla", talla);
    nuevoRegistro.put("fecha_validacion", "");
    nuevoRegistro.put("nombre_responsable", "");
    System.out.println("Guardado con exito");
    db.insert("Inscripcion", null, nuevoRegistro);
    db.close();
}

Aucun commentaire:

Enregistrer un commentaire