Autore Topic: Aggiornamentoi DB (esempio inserimento nuova tabella)  (Letto 270 volte)

Offline felasandroid

  • Utente normale
  • ***
  • Post: 345
  • Respect: +10
    • Github
    • balduzziantonio
    • balduzziantonio.unifi
    • Mostra profilo
  • Dispositivo Android:
    Huawei P8 Lite
  • Play Store ID:
    FelasTech
  • Sistema operativo:
    Windows 10
Aggiornamentoi DB (esempio inserimento nuova tabella)
« il: 03 Giugno 2015, 18:42:00 CEST »
0
Salve

ho creato un db attraverso un file nella cartella RAW, come segue:

Codice: [Seleziona]
CREATE TABLE USER_USA (
        _id integer PRIMARY KEY NOT NULL UNIQUE,
        matricola varchar NOT NULL UNIQUE,
         email varchar
        );

Supponiamo ora devo inserire una nuova tabella, ad esempio:

Codice: [Seleziona]
CREATE TABLE GOOGLE_KEY (
    _id integer PRIMARY KEY NOT NULL UNIQUE,
    regid varchar NOT NULL UNIQUE
    );

 Sto utilizzando per creare il DB questa funziona:


Codice (Java): [Seleziona]
 if (mDb == null || !mDb.isOpen()) {

            final File dbFile = mContext.getDatabasePath(SDB.DB_NAME);
            final boolean wasExisting = dbFile.exists();
            if (!wasExisting) {
                // We read the sql to create the SmartUnifiDB
                final String createDbStatement;
                try {
                    createDbStatement = ResourceUtils.getRawAsString(mContext, R.raw.create_schema);

                    // If it's not present we create it
                    DatabaseUtils.createDbFromSqlStatements(mContext, SDB.DB_NAME, DB_VERSION, createDbStatement);

                } catch (IOException e) {
                    e.printStackTrace();
                    Log.e(TAG_LOG, "Error creating DB", e);
                    return;
                }
            }

            mDb = mContext.openOrCreateDatabase(SDB.DB_NAME, Context.MODE_PRIVATE, null);

        }

Ora come fare per aggiornare il DB? perchè in questa maniera in pratica se cambio DB un utente deve cancellare i dati della app prima di installare la nuova versione sennò non parte

Offline tonno16

  • Utente storico
  • *****
  • Post: 1184
  • Respect: +57
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Aggiornamentoi DB (esempio inserimento nuova tabella)
« Risposta #1 il: 03 Giugno 2015, 20:51:10 CEST »
0
Ma non dovresi usare cursori e query? Io non vedo nulla di tutto ciò. Usando SqliteDataBase, ci soni già metodi del tipo .create .update etc