के रूप में हम एंड्रॉइड डेवलपर्स जानते हैं, SQLiteDatabaseexecSQL
विधि केवल एक कथन निष्पादित कर सकती है।एंड्रॉइड पर कुशल बैच एसक्यूएल क्वेरी निष्पादन डेटाबेस
दस्तावेज़ का कहना है:
एक भी एसक्यूएल बयान है कि एक प्रश्न नहीं है निष्पादित। उदाहरण के लिए,
CREATE TABLE
,DELETE
,INSERT
, आदि;
से अलग एकाधिक बयान समर्थित नहीं हैं।
मुझे रिकॉर्ड, 1000 और गिनती के बैच में लोड करना होगा।
मैं इन कुशलतापूर्वक कैसे सम्मिलित करूं?
और इन एसक्यूएल को अपने एपीके के साथ वितरित करने का सबसे आसान तरीका क्या है?
मेरा उल्लेख है कि पहले से ही एक सिस्टम डेटाबेस है और मैं इसे onUpdate
ईवेंट पर चलाऊंगा।
मैं इस कोड अब तक है:
List<String[]> li = new ArrayList<String[]>();
li.add(new String[] {
"-1", "Stop", "0"
});
li.add(new String[] {
"0", "Start", "0"
});
/* the rest of the assign */
try {
for (String[] elem : li) {
getDb().execSQL(
"INSERT INTO " + TABLENAME + " (" + _ID + "," + NAME + "," + PARSE_ORDER
+ ") VALUES (?,?,?)", elem);
}
} catch (Exception e) {
e.printStackTrace();
}
मैं इस समस्या के बारे में दस्तावेज है, और सब समाधान तथ्य यह है कि हम एक नया डेटाबेस बनाने पर विशेष आधारित हैं। लेकिन मुझे इसे अपग्रेड पर चाहिए, इसलिए मौजूदा डेटाबेस को बदलने के लिए अच्छा नहीं है, मुझे वहां उपयोगकर्ता सामग्री रखना है। – Pentium10
कोई कारण नहीं है कि आप दो डेटाबेस का उपयोग नहीं कर सकते - एक उपयोगकर्ता डेटाबेस और एक स्थिर सूचना डेटाबेस। इस तरह आप उपयोगकर्ता डेटा को छूटे रहते हुए अपग्रेड पर स्थैतिक डेटाबेस को पूरी तरह से बदल सकते हैं। –