2010-02-05 10 views
8

के लिए कस्टम फ़ाइल का उपयोग करना क्या SQLite डेटाबेस फ़ाइल के लिए एक कस्टम स्थान चुनना संभव है?Android sqlite डेटाबेस

यदि संभव हो तो मैं डेटाबेस फ़ाइल को मेमोरी कार्ड में संग्रहीत करना चाहता हूं। और यदि उपयोगकर्ता एक मेमोरी कार्ड से दूसरे में स्विच करता है तो मैं चाहता हूं कि मेरा एप्लिकेशन कार्ड पर उपलब्ध डेटाबेस फ़ाइल के किसी भी संस्करण का उपयोग करे।

उत्तर

12

डिफ़ॉल्ट रूप से अपने डेटाबेस आप SQLiteDatabaseopenOrCreateDatabase उपयोग कर सकते हैं जहाँ आप अपने पहले तर्क के रूप में अपने कस्टम डेटाबेस के लिए पथ की आपूर्ति कर सकते डेटा/डेटा/your_package/डेटाबेस

में संग्रहित है।

+1

एंड्रॉयड डेटा भंडारण प्रलेखन (http://developer.android.com/guide/topics/data /data-storage.html#db) उल्लेख करता है कि सभी डेटाबेस एक पूर्वनिर्धारित फ़ोल्डर में संग्रहीत हैं। लेकिन openOrCreateDatabase के लिए एपीआई दस्तावेज फ़ाइल नाम पर कोई प्रतिबंध नहीं डालता है। मुझे लगता है कि दस्तावेज वास्तव में भ्रमित है लेकिन यह समाधान हो सकता है। –

+0

हाँ दस्तावेज़ों की भारी कमी है, हालांकि यह आपको उत्तर देने के लिए उत्तर देता है, मुझे लगता है कि डेटाबेस बनाने के लिए आप 'SQLiteOpenHelper' का उपयोग करके बेहतर हैं और फिर डेटाबेस फ़ाइल को अपने मेमोरी कार्ड पर कॉपी करें। –

8

आप का उपयोग करके sdcard आप पर संग्रहीत एक डेटाबेस का उपयोग कर सकते हैं:

import android.database.Cursor; 
import android.database.SQLException; 
import android.database.sqlite.SQLiteDatabase; 

public class MyClass { 
    private SQLiteDatabase myDB = null; 

    // Constructor 
    public MyClass() { 
     try { 
      myDB = SQLiteDatabase.openDatabase(stPathToDB, null, SQLiteDatabase.NO_LOCALIZED_COLLATORS|SQLiteDatabase.OPEN_READONLY); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    } 

    // Destructor 
    public void finalize() { 
     myDB.close(); 
    } 
} 

NO_LOCALIZED_COLLATORS = स्थानीय collators के लिए समर्थन के बिना डेटाबेस को खोलने के लिए।

के लिए अपने sdcard के लिए पथ प्राप्त करने के लिए आप का उपयोग कर सकते हैं:

stPathToDB = android.os.Environment.getExternalStorageDirectory().toString()+"/dbase.sqlite" 

Rgds लेन

संबंधित मुद्दे