Autore Topic: come controllare la versione del database installata  (Letto 385 volte)

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
come controllare la versione del database installata
« il: 12 Aprile 2014, 11:46:24 CEST »
0
Ho creato un'app che usa un database, quando instanzio la classe che gestisce il db uso questo costruttore:

Codice (Java): [Seleziona]
        public Database(Context context) {

                super(context, DB_NAME, null, DB_VERSION);
                this.myContext = context;
        }
dove DB_VERSION = 2;

quando eseguo l'applicazione voglio sapere che versione del database è installata, ho inserito questo codice ma ritorna sempre zero

Codice (Java): [Seleziona]
        /**
         * Check if the database already exist to avoid re-copying the file each
         * time you open the application.
         *
         * @return dv versione if it exists, zero if it doesn't
         */

        private int checkDataBase() {

                int dbVersion = -1;
                SQLiteDatabase dbInstalled = null;
                try {
                        String myPath =Environment.getDataDirectory()+ "/data/it.test/databases/myappdb.db";
                        dbInstalled = SQLiteDatabase.openDatabase(myPath, null,
                                        SQLiteDatabase.OPEN_READWRITE);

                } catch (SQLiteException e) {

                        // database does't exist yet.

                }
                System.err.println("dbInstalled: "+dbInstalled); <-- ritorna un valore != null
                if (dbInstalled != null) {
                        dbVersion = dbInstalled.getVersion();
                        Log.e("version ", "db installed Version number is " + dbVersion); <- ritorna zero
                        dbInstalled.close();

                } else
                        Log.e("version ", "no db installed ");

                return dbVersion;
        }

questo metodo dovrebbe tornarmi 2, invece ritorna sempre zero, dove sbaglio?