Autore Topic: problema db Sqlite e alcuni dubbi  (Letto 353 volte)

Offline raimondo

  • Utente junior
  • **
  • Post: 130
  • Respect: 0
    • Mostra profilo
problema db Sqlite e alcuni dubbi
« il: 07 Dicembre 2011, 15:56:47 CET »
0
Salve ragazzi ho dimenticato di inserire AUTOINCREMENT ad all' _id INTEGER PRIMARY KEY e quindi vorrei sapere come eliminare il fisicamente in toto (codice oppure dove viene salvato da eclipse ed eliminarlo direttamente)......poi avrei 2 dubbi:
1) con autoincrement ho letto ke se elimini una riga dal db poi il valore dell'id nn viene decrementato e se è vero come risolvere il problema?
2) dovrei aggiungerre alla tabella un chiave secondaria (foreign key) nn ho trovato esempi in giro qualcuno saprebbe aiutarmi e poi la query che usa 2 kiavi  come deve essere fatta?

Offline Brig

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Ubuntu 10.4, Windows 7
Re:problema db Sqlite e alcuni dubbi
« Risposta #1 il: 07 Dicembre 2011, 21:34:58 CET »
+1
1) non viene decrementato, ma tale valore non viene più riusato... per avere il massimo _id infatti non fai "SELECT COUNT(*)", ma "SELECT MAX(_id)"

0) SQLite Query Language: DROP TABLE
oppure connetti il cell al pc e navighi nella cartella dove hai creato il db e lo rimuovi a mano  8-)
« Ultima modifica: 08 Dicembre 2011, 14:05:52 CET da Brig »

Offline raimondo

  • Utente junior
  • **
  • Post: 130
  • Respect: 0
    • Mostra profilo
Re:problema db Sqlite e alcuni dubbi
« Risposta #2 il: 07 Dicembre 2011, 21:36:49 CET »
0
e il db dove dovrebbe trovarsi? in ke cartella? grazie ancora ciao

Offline Brig

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Ubuntu 10.4, Windows 7
Re:problema db Sqlite e alcuni dubbi
« Risposta #3 il: 07 Dicembre 2011, 21:44:56 CET »
0
non so se può funzionare... ma puoi provare a creare un File e fare delete();

il mio lo ho nella SD interna del telefono... e gli ho dato questo percorso
private static final String DATABASE_PATH = "/myPath/";
private static final String DATABASE_NAME = "database.sqlite";
private static final File DATABASE_FILE = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), DATABASE_PATH + DATABASE_NAME);

probabilmente "il tuo path" sarà stringa vuota... quindi direttamente nella cartella... giusto per curiosità potresti farti un toast veloce che ti stampa
private static final File DATABASE_FILE = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), databaseName);
DATABASE_FILE.getAbsolutePath();

ho scritto a memoria... ci sta che ci siano errori

Offline Verandi

  • Utente normale
  • ***
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:problema db Sqlite e alcuni dubbi
« Risposta #4 il: 08 Dicembre 2011, 11:29:47 CET »
+1
Ciao! Per eliminare velocemente il database basta che tu vada nelle impostazioni del telefono in applicazioni/gestisci applicazioni, selezioni la tua applicazione nella lista e clicchi nel pulsante "cancella dati".
Se invece vuoi farlo da codice, per la directory del database puoi utilizzare il metodo getDatabasePath() della classe Context: Context | Android Developers.

1: Per l'id, il valore, come ti han scritto, non viene più riutilizzato. Qual è il problema? :)
2: Per le foreign key, modifichi la stringa di creazione della tabella guardando qui: SQLite Foreign Key Support

Offline Brig

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Ubuntu 10.4, Windows 7
Re:problema db Sqlite e alcuni dubbi
« Risposta #5 il: 08 Dicembre 2011, 14:04:29 CET »
0
0) è effettivamente migliore la soluzione proposta da Verandi

2) dato che ho detto una castroneria cancello XD