Ich kann nicht finden, wo Android die Datenbankversion in der SQLite-Datenbankdatei speichert. Wo genau ist die Datenbankversion gespeichert?Wo speichert Android die Datenbankversion von SQLite?
86
A
Antwort
180
Sie können die Version mit android.database.sqlite.SQLiteDatabase.getVersion()
lesen.
Intern führt diese Methode die SQL-Anweisung "PRAGMA user_version
" aus. Ich habe das von der Android source code.
In der Datenbankdatei wird die Version im Byteoffset 60 in der database header der Datenbankdatei im Feld 'user cookie' gespeichert.
6
Wenn jemand für den Java-Code sucht Version von Datei zu lesen:
private static int getDbVersionFromFile(File file) throws Exception
{
RandomAccessFile fp = new RandomAccessFile(file,"r");
fp.seek(60);
byte[] buff = new byte[4];
fp.read(buff, 0, 4);
return ByteBuffer.wrap(buff).getInt();
}
, das war nützlich, aber meine Frage woher kommt diese Info-Version auf dem Dateisystem erhalten gespeichert (oder in Datenbank-Datei sein kann) ? – bhups
Es ist in der Datenbank-Header gespeichert (ich aktualisierte meine Antwort). –
Und zu lesen und zu ändern http://stackoverflow.com/questions/8030779/change-sqlite-database-version-number –