Autore Topic: problema inserimento riga sqlite  (Letto 684 volte)

Offline marcocampoli

  • Utente junior
  • **
  • Post: 75
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    ubuntu 10.4
problema inserimento riga sqlite
« il: 12 Ottobre 2013, 11:13:02 CEST »
0
Ciao a tutti. Sto creando un app che gestisce esercizi.

La tabella esercizi è composta da stringhe, double e interi..

Fino a ieri pomeriggio tutto ok... Ad un certo punto non riesco più ad inserire
righe nella tabella esercizi, senza però, riscontrare alcun problema...

Per inserire la riga utilizzo insertorthrow(), ma come risultato non ho -1, ma
l'id esatto....

Il problema è che la riga effettuvamente non è stata inserita....


Forse l'errore da logcat  "cursor or database not closed" può causare
questa malfuzione??...

Offline zorcraft

  • Utente junior
  • **
  • Post: 108
  • Respect: +5
    • Mostra profilo
  • Dispositivo Android:
    note
  • Play Store ID:
    zorcraft
Re:problema inserimento riga sqlite
« Risposta #1 il: 12 Ottobre 2013, 11:19:54 CEST »
0
conviene che metti un po di codice e anche il logcat cosi possiamo capire meglio ed aiutarti

Offline marcocampoli

  • Utente junior
  • **
  • Post: 75
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    ubuntu 10.4
Re:problema inserimento riga sqlite
« Risposta #2 il: 12 Ottobre 2013, 11:33:13 CEST »
0
Ciao.. Ecco il metodo di inserimento che utilizzo

Codice (Java): [Seleziona]
public long createContact( EEsercitazione eEsercitazione ) {
                ContentValues initialValues = createContentValues(
                                eEsercitazione.getData_creazione().toString(),
                                eEsercitazione.getId_server(),
                                eEsercitazione.getUltimo_aggiornamento().toString(),
                                eEsercitazione.getId_autore(),
                                eEsercitazione.isCondivisa(),
                                eEsercitazione.getN_download(),
                                eEsercitazione.getVoto_community(),
                                eEsercitazione.getVincoli(),
                                eEsercitazione.getSemaforo_attentivo(),
                                eEsercitazione.getDurata_consigliata().toString(),
                                eEsercitazione.getTitolo(),
                                eEsercitazione.getDescrizione(),
                                eEsercitazione.getNote() );

                return database.insertOrThrow(DATABASE_TABLE, null, initialValues);
        }


dove il metodo utilizzato fa la seguente cosa:

Codice (Java): [Seleziona]
private ContentValues createContentValues(String data_creazione, long id_server,
                        String ultimo_aggiornamento, long id_autore, boolean condivisa,
                        int download, float voto, String vincoli, int semaforo, String durata, String titolo,
                        String descrizione, String note ) {
                ContentValues values = new ContentValues();

                values.put( DATA_CREAZIONE, data_creazione );
                values.put( ID_SERVER, id_server );
                values.put( ULTIMO_AGGIORNAMENTO, ultimo_aggiornamento );
                values.put( ID_AUTORE, id_autore );
                values.put( CONDIVISA, condivisa );
                values.put( DOWNLOAD, download );
                values.put( VOTO_COMMUNITY, voto );
                values.put( VINCOLI, vincoli );
                values.put( SEMAFORO, semaforo );
                values.put( DURATA_TOTALE, durata );
                values.put( TITOLO, titolo );
                values.put( DESCRIZIONE, descrizione );
                values.put( NOTE, note );

                return values;
        }



la dichiarazione della classe la faccio così:

Codice (Java): [Seleziona]
        public MEsercitazione(Context context) {
                this.context = context;
                this.open();
        }

        public MEsercitazione open() throws SQLException {
                dbHelper = new DatabaseHelper(context);
                database = dbHelper.getWritableDatabase();
                return this;
        }

        public void close() {
                dbHelper.close();
        }



per quanto riguarda il log, come dicevo non ho nessun errore durante l'inserimento....

L'unica cosa degna di nota è "cursor or database not closed"... però riguarda un activity
diversa da quella che inserisce la mia esercitazione.... in pratica è l'activity che chiama l'activity
di inserimento, oppure addirittura quella che c'è prima