Autore Topic: DB SQlite Autoincrement + Editing by SQLiteManager  (Letto 605 volte)

Offline Auron

  • Utente junior
  • **
  • Post: 104
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone Android 2.2.1
  • Sistema operativo:
    Windows
DB SQlite Autoincrement + Editing by SQLiteManager
« il: 19 Novembre 2011, 19:22:44 CET »
0
Buonasera a tutti,

1)Ho creato un esempio di App che usa Sqlite e presa una tabella impostata con ID ad AUTOINCREMENT se per caso io faccio una delete di una row (facciamo proprio il caso della prima riga con ID=1) succede che ad un successivo riinserimento viene inserita una row con ID successivo all'ultimo che vede in TABLE. Ripensandoci l'AUTOINCREMENT serve proprio a questo, ma allora com'è possibile riempire le ROW rimaste vuote e poi riprendere dall'ultima con l'AUTOINCREMENT?

Devo modificare qualcosa in questo metodo?
Codice (Java): [Seleziona]
public long insertTitle(String isbn, String title, String publisher)
    {
       
        ContentValues initialValues = new ContentValues();
        initialValues.put(KEY_ISBN, isbn);
        initialValues.put(KEY_TITLE, title);
        initialValues.put(KEY_PUBLISHER, publisher);
        return db.insert(DATABASE_TABLE, null, initialValues);
    }

2)Se volessi poi con un programma visuale come SQLiteManager o tantissimi altri aprire la tabella creata dall'App come si può fare? Perchè da quello che ho capito la table viene creata nella ROM dell'emulatore e quindi accessibile (forse) solo quando l'emulatore è in esecuzione (sempre che sia così...)

Grazie
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;-)

Zate

  • Visitatore
Re:DB SQlite Autoincrement + Editing by SQLiteManager
« Risposta #1 il: 19 Novembre 2011, 19:37:44 CET »
0
Per il primo problema usa:
Codice: [Seleziona]
DELETE FROM your_table;   
DELETE FROM sqlite_sequence WHERE name = 'your_table';
sql - Reset the row number count in SQLite3/MySQL - Stack Overflow

Offline Auron

  • Utente junior
  • **
  • Post: 104
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone Android 2.2.1
  • Sistema operativo:
    Windows
Re:DB SQlite Autoincrement + Editing by SQLiteManager
« Risposta #2 il: 19 Novembre 2011, 19:58:04 CET »
0
Grazie ;-)
Ma lo faccio sempre nella funzione InsertTitle prima di fare le rispettive insert?
E il codice che hai scritto va fatto con la classica execSQL(query) dove query è la DELETE?

Attendo la risp alla 2)  :-)
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;-)

Zate

  • Visitatore
Re:DB SQlite Autoincrement + Editing by SQLiteManager
« Risposta #3 il: 19 Novembre 2011, 20:26:26 CET »
0
Credo che si debba fare con la classica execSQL e mettilo nella funzione dove cancelli tutti i campi del database. Non so invece come fare se tu volessi ricominciare da un certo numero.