2010-12-13 6 views
5

उन्हें एक लेनदेन में डाले बिना एकाधिक SQL कथन निष्पादित करना एक गंभीर बाधा है (उदाहरण के लिए http://www.sqlite.org/faq.html#q19 देखें)। मैंने पूरी तरह से जांच नहीं की है कि कैसे एंड्रॉइड पर SQLite कॉन्फ़िगर किया गया है, लेकिन अजीब रूप से मैंने अधिक स्थानों पर लेनदेन का उपयोग करते समय अपने ऐप में नाटकीय प्रदर्शन वृद्धि देखी।StrictMode का उपयोग कर एंड्रॉइड पर भूल गए SQLite लेनदेन का पता लगाना?

क्या उन उदाहरणों का पता लगाना संभव है जहां कोई स्ट्रिक्टोड का उपयोग करके लेनदेन का उपयोग करना भूल जाता है? यदि नहीं, तो क्या इसे सख्तमोड की भावी रिलीज के लिए माना जा सकता है? यह पता लगाने में कुछ मुश्किल हो सकता है, लेकिन दो अलग-अलग रणनीतियों हो सकती हैं, 1) लेनदेन के बाहर गैर-चयन बयान, या 2) एक छोटी अवधि के भीतर निष्पादित लेनदेन के बाहर कई गैर-चयन बयान।

उत्तर

3

हाँ, यह पकड़ने के लिए एक अच्छी चीज की तरह लगता है। मैं जैसी API कल्पना कर सकता:

StrictMode.catchWritesOutsideTransactionsOn(SQLiteDatabase db);

हम StrictMode में अन्य SQLite हुक पर विचार किया गया है (ज्यादातर के आसपास लापता अनुक्रमित और इस तरह का चयन करता है), लेकिन यह एक अच्छा विचार भी है!

+1

चीयर्स! गुम इंडेक्स भी भयानक होगा! – jonasb

+0

जिंजरब्रेड के लिए मेरी नेक्सस हिट करने की प्रतीक्षा कर रहा है ... twiddle thumbs :) – hunterp

+0

अरे, जिंजरब्रेड स्रोत अब बाहर है! एक समय में एक ही कदम। :) –

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