Autore Topic: Problema mysql errore insert  (Letto 844 volte)

Offline mambu

  • Utente normale
  • ***
  • Post: 167
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Problema mysql errore insert
« il: 27 Novembre 2011, 21:12:44 CET »
0
Salve sto cercando di salvare dei dati in un db che ho creato ma non riesco a capire l'errore che si genera durante l'insert,
come base per creare il db ho usato il tutorial che ho trovato qui: [medio] Creazione e utilizzo di un database SQLite - Android Developers Italia
questo è il logcat:
Codice: [Seleziona]
11-27 21:07:31.238: ERROR/Database(11627): Error inserting Data=pippo Min=180.0
11-27 21:07:31.238: ERROR/Database(11627): android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed
11-27 21:07:31.238: ERROR/Database(11627):     at android.database.sqlite.SQLiteStatement.native_execute(Native Method)
11-27 21:07:31.238: ERROR/Database(11627):     at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:61)
11-27 21:07:31.238: ERROR/Database(11627):     at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1582)
11-27 21:07:31.238: ERROR/Database(11627):     at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1426)
11-27 21:07:31.238: ERROR/Database(11627):     at com.maki.mambu.DB.insertPingResult(DB.java:51)
11-27 21:07:31.238: ERROR/Database(11627):     at com.maki.mambu.MenuLauncher.onActivityResult(MenuLauncher.java:303)
11-27 21:07:31.238: ERROR/Database(11627):     at android.app.Activity.dispatchActivityResult(Activity.java:3908)
11-27 21:07:31.238: ERROR/Database(11627):     at android.app.ActivityThread.deliverResults(ActivityThread.java:2528)
11-27 21:07:31.238: ERROR/Database(11627):     at android.app.ActivityThread.handleSendResult(ActivityThread.java:2574)
11-27 21:07:31.238: ERROR/Database(11627):     at android.app.ActivityThread.access$2000(ActivityThread.java:117)
11-27 21:07:31.238: ERROR/Database(11627):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:961)
11-27 21:07:31.238: ERROR/Database(11627):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-27 21:07:31.238: ERROR/Database(11627):     at android.os.Looper.loop(Looper.java:130)
11-27 21:07:31.238: ERROR/Database(11627):     at android.app.ActivityThread.main(ActivityThread.java:3683)
11-27 21:07:31.238: ERROR/Database(11627):     at java.lang.reflect.Method.invokeNative(Native Method)
11-27 21:07:31.238: ERROR/Database(11627):     at java.lang.reflect.Method.invoke(Method.java:507)
11-27 21:07:31.238: ERROR/Database(11627):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-27 21:07:31.238: ERROR/Database(11627):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-27 21:07:31.238: ERROR/Database(11627):     at dalvik.system.NativeStart.main(Native Method)

il  mio db lo creo e ho controllato sembra che le tabelle le crei, solo che proprio nelle put del metodo insert dà errore
Codice (Java): [Seleziona]
ContentValues cv=new ContentValues();
            cv.put("Data", "pippo");  
            mDb.insert("Test", null, cv);

vi ringrazio per l'aiuto:)

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Problema mysql errore insert
« Risposta #1 il: 28 Novembre 2011, 10:34:44 CET »
0
Ciao,
poche informazioni non aiutano.
Serve la struttura del database.
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline mambu

  • Utente normale
  • ***
  • Post: 167
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Problema mysql errore insert
« Risposta #2 il: 28 Novembre 2011, 10:43:15 CET »
0
la tabella la creo usando la:
_db.execSQL(TABLE_CREATE);
e dichiarando la TABLE_CREATE come di seguito:
   
Codice (Java): [Seleziona]
private static final String TABLE_CREATE = "CREATE TABLE IF NOT EXISTS "
                        + MetaData.TABLE
                        + " ("
                        + MetaData.ID
                        + " integer primary key autoincrement, "
                        + MetaData.DATA
                        + " text not null "
                        +");";
i metadata sono questi:
Codice (Java): [Seleziona]
        static class MetaData { // i metadati della tabella, accessibili ovunque
                static final String TABLE = "Test";
                static final String ID = "id";
                static final String DATA = "Data";
}
poi dopo aver aperto il db con:
Codice (Java): [Seleziona]
public void open() { // il database su cui agiamo è leggibile/scrivibile
                mDb = mDbHelper.getWritableDatabase();

        }

chiamo una funzione la query che aggiunge la riga:
Codice (Java): [Seleziona]
       
public void insertResult(String data) {
                ContentValues cv = new ContentValues();
                cv.put(MetaData.DATA, "pippo");
                mDb.insert(MetaData.TABLE, null, cv);
        }

poi l'errore che appare è quello che ho scritto sopra ;-)

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Problema mysql errore insert
« Risposta #3 il: 28 Novembre 2011, 11:00:20 CET »
0
La ragione di questo errore potrebbero essere queste:
 
 1. Key Primay valore chiave  nullo
 
 2. Chiave univoca violata
 
 3. Duplicazione di valore della chiave primaria

Perciò verifica bene la creazione dei campi.
Installati magari sqllite sul tuo pc ti scrichi dal tuo emulatore il db che hai creato e lo carichi in sql lite.
POi fai i test di inserimento a mano.
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline mambu

  • Utente normale
  • ***
  • Post: 167
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Problema mysql errore insert
« Risposta #4 il: 28 Novembre 2011, 14:18:46 CET »
0
La ragione di questo errore potrebbero essere queste:
 
 1. Key Primay valore chiave  nullo
 
 2. Chiave univoca violata
 
 3. Duplicazione di valore della chiave primaria

Perciò verifica bene la creazione dei campi.
Installati magari sqllite sul tuo pc ti scrichi dal tuo emulatore il db che hai creato e lo carichi in sql lite.
POi fai i test di inserimento a mano.

purtroppo non ho trovato l'errore allora ho riscritto d'accapo e ora funzione, adesso mi sorge una domanda ma fisicamente nel telefono dove lo salva il db?lo posso recuperare in qualche modo per visualizzarlo con qualche altro tools?

Zate

  • Visitatore
Re:Problema mysql errore insert
« Risposta #5 il: 28 Novembre 2011, 14:49:44 CET »
0
Si trova in /data/data/tuaapplicazione/databases/tuodatabase

Puoi visualizzarlo con un file explorer con le funzioni di root (root explorer, per esempio). Ovviamente hai bisogno del root.

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Problema mysql errore insert
« Risposta #6 il: 28 Novembre 2011, 14:55:33 CET »
0
Quando l'app è im esecuzione(emulatore) apri la visualizzazione DDMS, posizionati sul tab file explorer e posizionati nella cartella inicata da ZATE.
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline mambu

  • Utente normale
  • ***
  • Post: 167
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Problema mysql errore insert
« Risposta #7 il: 28 Novembre 2011, 15:17:19 CET »
0
grazie tutto trovato :D