2010-09-14 17 views
86

मैं यह नहीं ढूंढ पा रहा हूं कि एंड्रॉइड SQLite डेटाबेस फ़ाइल के भीतर डेटाबेस संस्करण को संग्रहीत करता है। डेटाबेस संस्करण वास्तव में कहां संग्रहीत किया जाता है?एंड्रॉइड स्टोर SQLite का डेटाबेस संस्करण कहां स्टोर करता है?

उत्तर

180

आप android.database.sqlite.SQLiteDatabase.getVersion() का उपयोग कर संस्करण पढ़ सकते हैं।

आंतरिक रूप से, यह विधि SQL कथन "PRAGMA user_version" निष्पादित करती है। मुझे लगता है कि Android source code से।

डेटाबेस फ़ाइल में, संस्करण 'उपयोगकर्ता कुकी' क्षेत्र में डेटाबेस फ़ाइल के database header में बाइट ऑफसेट 60 पर संग्रहीत किया जाता है।

+0

कि उपयोगी था, लेकिन मेरे सवाल का इस संस्करण की जानकारी फाइल सिस्टम पर संग्रहीत है जहां करता हो (या डेटाबेस फ़ाइल में हो सकता है) ? – bhups

+9

यह डेटाबेस शीर्षलेख में संग्रहीत है (मैंने अपना जवाब अपडेट किया है)। –

+3

और इसे पढ़ने और संशोधित करने के लिए http://stackoverflow.com/questions/8030779/change-sqlite-database-version-number –

6

किसी फ़ाइल से संस्करण को पढ़ने के लिए जावा कोड के लिए देख रहा है, तो:

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(); 
} 
संबंधित मुद्दे