SQLite
 sql >> डेटाबेस >  >> RDS >> SQLite

डेटाबेस को रीड/राइट मोड में खोलने में सक्षम नहीं है

आपका प्रश्न इतना स्पष्ट नहीं है, लेकिन मैं उत्तर देने का प्रयास करूँगा।

सबसे अधिक संभावना है, आपका डेटाबेस या तो:

  1. अभी तक मौजूद नहीं है, और आपको इसे बनाना होगा;
  2. आपकी डेटाबेस फ़ाइल केवल पढ़ने के लिए है, आपको इसे बदलना होगा (यह प्रश्न संबंधित हो सकता है)।

#2 के लिए, SQLiteOpenHelper#getReadableDatabase() का उपयोग करने के बजाय , उपयोग करें SQLiteOpenHelper#getWritableDatabase

यदि आपका डेटाबेस बाहरी संग्रहण इकाई पर है, तो आपके पास जांचने के लिए कुछ अन्य चीज़ें हैं:

  1. क्या वर्तमान में बाह्य संग्रहण माउंट किया गया है? यदि नहीं, तो आप डीबी तक नहीं पहुंच सकते।
  2. क्या इसे केवल पढ़ने के लिए माउंट किया गया है? अगर ऐसा है, तो आपको इसे बदलना होगा।
  3. क्या आपने पथ की जांच की है? क्या यह सही है?

समस्या इनमें से किसी भी विषय पर हो सकती है।

यह जाँचने के लिए कि क्या यह केवल-पढ़ने के लिए माउंट किया गया है, निम्न प्रयास करें:

/* Checks if external storage is available for read and write */
public boolean isExternalStorageWritable() {
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state)) {
        return true;
    }
    return false;
}

/* Checks if external storage is available to at least read */
public boolean isExternalStorageReadable() {
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state) ||
        Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
        return true;
    }
    return false;
}

यहाँ से लिया गया।

Environment के बारे में अधिक जानकारी के लिए कक्षा, कृपया डॉक्स देखें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite अभिव्यक्ति-आधारित अनुक्रमणिका

  2. एंड्रॉइड SQLite:परीक्षण उद्देश्य के लिए बड़ी तालिका कैसे उत्पन्न करें?

  3. chmod विफल:Android में EPERM (ऑपरेशन की अनुमति नहीं है)?

  4. पता लगाएँ कि क्या किसी मान में SQLite में कम से कम एक संख्यात्मक अंक है

  5. क्या मुझे अपने डेटाबेस में प्रत्येक तालिका के लिए SQLiteOpenHelper विरासत में मिली कक्षा बनानी चाहिए?