Autore Topic: Spazio memoria database  (Letto 620 volte)

Offline Anele

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
Spazio memoria database
« il: 05 Maggio 2012, 11:41:14 CEST »
0
Salve a tutti,
Sto lavorando con i databases su Android e volevo sapere se c'è un modo per aumentare la memoria del database perchè una volta raggiunto un certo numero di rigne, quando faccio una query, mi da il seguente errore:

CursorWindowAllocationException: Cursor window allocation of 2048 kb

Grazie a tutti.

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Spazio memoria database
« Risposta #1 il: 05 Maggio 2012, 12:00:54 CEST »
0
Puoi postare la parte di codice che ti genera l'errore?

Ho un vago ricordo di un errore simile che avevo ricevuto ed era dovuto al fatto che non chiudevo il Cursor prima del return dei dati.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Anele

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
Re:Spazio memoria database
« Risposta #2 il: 05 Maggio 2012, 12:16:24 CEST »
0
Mi da errore su
Codice (Java): [Seleziona]
cursore.moveToFirst();Solo quando ho troppe righe.
il metodo è:
Codice (Java): [Seleziona]
public double Media(String mese, int anno){
               
                String prezzobenzina=null;
        String benzina = null;
        Double somma =0.0;
            Double media=0.0;
        List<String> list = new ArrayList<String>();
                SQLiteDatabase db = events.getReadableDatabase();

                Cursor cursore =db.rawQuery("SELECT * FROM eventsriepilogodati WHERE data LIKE ?"
                                , new String[] { "%" + mese+"/"+anno+ "%" });
               
        startManagingCursor(cursore);
        cursore.moveToFirst();
       
                         while (cursore.isAfterLast() == false) {
                               
                            for(int i=0;i<cursore.getCount();i++){
                                         prezzobenzina=cursore.getString(3);
                                         cursore.moveToNext();
                                         list.add(prezzobenzina);
                                         
                                         }
                                 for(int j=0;j<list.size();j++){
                                                 
                                         benzina =list.get(j);
                                         somma=(somma+Double.parseDouble(benzina));
                                 media=(somma/cursore.getCount());
                                         
                                        }
                                 }
                       
                         return media;
               
               
        }