के भीतर अपडेट करें SQLiteDatabase
insert()
सामग्री प्रदाता की ओवरराइड विधि में अद्यतन विधि को कॉल करना ठीक है?एंड्रॉइड कंटेंटप्रोवाइडर - एक डालने विधि
उत्तर
मूल रूप से यह ठीक है, लेकिन जब से तुम कोड प्रदान नहीं किया है, मैं तो बस के लिए यह
पहले 2 संभव तरीके पोस्ट कर सकते हैं:
// In your content provider
public Uri insert(...) {
long insertId = db.insert(...);
if(insertId == -1) {
// insert failed, do update
db.update(...);
}
}
दूसरा:
public Uri insert(...) {
long insertId = db.insertWithOnConflict(table, null, values, SQLiteDatabase.CONFLICT_REPLACE)
if(insertId == -1) {
// insert and update/replace failed
}
}
चेक आउट आगे पैरामीटर पर संदर्भ के लिए SQLiteDatabase। ज्यादातर मामलों में अंतिम विधि पर्याप्त होनी चाहिए, जब तक कि आप पंक्ति में मौजूद न होने पर केवल कुछ फ़ील्ड अपडेट होने चाहिए और यदि सभी फ़ील्ड नहीं हैं तो यह आवश्यक है।
डालने के लिए सबसे उपयोगी आवश्यकता WithOnConflict हो सकता है, कि आप एक पंक्ति डाल सकते हैं और यदि यह पहले से मौजूद है, तो सम्मिलित करें और इसके बजाय पहले से मौजूद पंक्ति की उरी/प्राथमिक कुंजी वापस कर दें।
यह आपकी पसंद है जो आप अपने ओवरराइड तरीकों से लिखते हैं। तो हाँ, यह ठीक है।
मुझे नहीं पता कि आप क्या करने का प्रयास कर रहे हैं, लेकिन आप SQLiteDatabase
की replace()
विधि पर भी एक नज़र डालना चाहते हैं। शायद यह आपकी आवश्यकताओं के अनुरूप बेहतर है।
- 1. एंड्रॉइड कंटेंटप्रोवाइडर प्रदर्शन
- 2. एंड्रॉइड कंटेंटप्रोवाइडर getType() को कब और क्यों
- 3. एंड्रॉइड ब्रॉडकास्ट रिसीवर, कंटेंटप्रोवाइडर और गतिविधि के बीच डेटाफ्लो?
- 4. एक विधि कॉल के सामने एक टिल्ड डालने?
- 5. गतिविधि स्टैक में एंड्रॉइड डालने
- 6. एंड्रॉइड में edittext के अंदर टेक्स्टव्यू डालने?
- 7. डालने
- 8. का उपयोग कर डालने() विधि पीएचपी सिद्धांत \ DBAL साथ दिनांक समय मूल्य डालने के लिए 2
- 9. एक डालने वाला निष्पादन कथन
- 10. एंड्रॉइड: createNewFile() विधि
- 11. MySQL दिनांक स्वरूप - कठिनाई एक तिथि डालने
- 12. एंड्रॉइड ऐरेएडाप्टर। विधि जोड़ें
- 13. एंड्रॉइड: ऑनस्ट्राय() विधि
- 14. एनएचबेर्नेट, एक-से-एक मैपिंग, कैस्केड डालने
- 15. एक डीवी तत्व में जीडब्ल्यूटी विजेट डालने
- 16. Drupal में एक ब्लॉक में एक फॉर्म डालने?
- 17. MySQL डालने प्रदर्शन एक बड़ी तालिका
- 18. डालने डेटा - कोई त्रुटि, कोई डालने
- 19. रेल देखें हेल्पर एचटीएमएल डालने में एचटीएमएल डालने में पेज
- 20. हाइबरनेट डालने झरना डालने नहीं विदेशी कुंजी
- 21. अधिसूचना पर एंड्रॉइड कॉल विधि
- 22. गैर-स्थैतिक विधि (एंड्रॉइड getAplicationContext())
- 23. सिंटेक्स एक पंक्ति पर एक ब्लॉक डालने के लिए
- 24. एंड्रॉइड SQLite: nullColumnHack पैरामीटर डालने/प्रतिस्थापन विधियों में
- 25. सी # 3.5 में एक सामान्य विधि पर इंटरफ़ेस बाधा डालने के लिए कैसे?
- 26. सही स्थान पर एक विधि डालने का प्रयास करते समय ओओपी joungle में खोना
- 27. विम: तीर कुंजियां डालने की विधि में एक पंक्ति के भीतर स्थानांतरित करने के लिए
- 28. @Autowired को एक चर और विधि में डालने के बीच क्या अंतर है?
- 29. एंड्रॉइड में टच रिलीज विधि
- 30. Django - अंतिम डालने आईडी
ठीक है मेरी समस्या यह है कि मुझे यह जांचने की आवश्यकता है कि कोई पंक्ति मौजूद है या नहीं, कॉलम ए में एक निश्चित मान है (ए अद्वितीय कुंजी नहीं है)। यदि हां मुझे इस पंक्ति को अद्यतन करने की आवश्यकता है। – Mak
यदि अन्यथा मुझे एक नई पंक्ति बनाने की आवश्यकता है .... – Mak
करने का सबसे अच्छा तरीका क्या है आपके पास ऐसा करने के 2 तरीके हैं: 1. प्रतिस्थापित करें (यदि पंक्ति मौजूद नहीं है, तो यह इसे सम्मिलित करती है; यदि यह मौजूद है, यह इसे हटा देता है और नए को सम्मिलित करता है); 2. पंक्ति डालने का प्रयास करें ... यदि सफल नहीं हुआ (अर्थात् पंक्ति पहले से मौजूद है), इसे अपडेट करें। इसलिए यदि आपको पुरानी पंक्ति (कुछ निश्चित कॉलम मान की तरह) से कुछ चाहिए, तो सम्मिलित करें + अपडेट का उपयोग करें। यदि नहीं, तो प्रतिस्थापित करें (आप पुरानी पंक्ति से सभी डेटा खो देंगे)। – Edi