2011-03-04 16 views
6

मेरे पास निम्न कोड है, यह नीचे की गई रन टाइम त्रुटि देता है। क्यूं कर?बाहरी SQLite फ़ाइल सामग्री त्रुटि का उपयोग

try{ 
String myPath = DB_PATH + DB_NAME; 
mDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY); 
}catch(SQLiteException e){} 

रनटाइम त्रुटि:

:sqlite returned: error code = 1, msg = no such table: android_metadata 
:SELECT locale FROM android_metadata failed 
:Failed to setLocale() when constructing, closing the database 
:android.database.sqlite.SQLiteException: no such table: android_metadata 
+0

एक समाधान हो सकता है, openDatabase के बजाय openOrCreateDatabase का उपयोग करें। यह डेटाबेस उपलब्ध कराएगा यदि यह उपलब्ध नहीं है। – Mudassir

उत्तर

24

एक स्तंभ नाम locale के साथ, आप locale के लिए मूल्य के रूप में hi पर डाल सकता है, यकीन है कि तालिका नाम android_metadata है बनाओ।

या बल्कि इस एसक्यूएल बयान निष्पादित करें:

CREATE TABLE "android_metadata" ("locale" TEXT DEFAULT 'en_US'); 

संपादित करें: यदि आप SQLiteDatabase.NO_LOCALIZED_COLLATORS ध्वज के साथ openDatabase() कहते हैं, आप तो आप इस मेज के चारों ओर की आवश्यकता होगी, और इस तालिका है की जरूरत नहीं होगी ।

setLocale() देखें।

+1

नहीं .. उस कॉलम की आवश्यकता क्यों है? मेरे ऐप में मैं रिमोट। एसक्लाइट फ़ाइल तक पहुंच रहा हूं और इसे प्रदर्शित कर रहा हूं। इसमें ऐसी कोई फ़ाइल नहीं है .. क्या यह एंड्रॉइड के लिए अनिवार्य है? – vnshetty

+0

उत्तर अद्यतन किया गया है। – SteD

+1

हाँ .. आप सही हैं! लेकिन उस तालिका का महत्व क्या है ... – vnshetty

5

कॉल openDatabase() SQLiteDatabase.NO_LOCALIZED_COLLATORS ध्वज के साथ, यह मैं क्या किया जब मैं समस्या पिछली बार ... से मुलाकात की है

8

जब खुला पढ़ने केवल db और उसके पहले से ही बनाया है, उपयोग NO_LOCALIZED_COLLATORS।

try{ 
    String myPath = DB_PATH + DB_NAME; 
    mDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY+ SQLiteDatabase.NO_LOCALIZED_COLLATORS); 
}catch(SQLiteException e){} 

एंड्रॉइड_मैटडाटा तालिका बनाई जाएगी यदि आप लेखन अनुमतियों के साथ डेटाबेस खोलते हैं।

+0

झंडे के अतिरिक्त में "+" सही है? शायद एक या "|" होना चाहिए यही है ना? –

+0

इसका पाइप प्रतीक, bitwise या | – spy

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