2009-06-26 14 views
5

का उपयोग कर, हालांकि मैं किसी भी स्पष्ट AutoCommit सही या गलत उपयोग नहीं कर रहा मैं एक SQLite त्रुटि का सामना करना पड़ रहा प्रगति में SQL कथन लेन-देन के लिए प्रतिबद्ध नहीं कर सकते हैं। कोई भी इस त्रुटि पर कोई इनपुट प्रदान कर सकता है। ऐसी स्थिति क्या है जहां आपको यह त्रुटि मिल जाएगी।SQLite त्रुटि: - जावा कोड

अग्रिम धन्यवाद। सम्मान, मनासी सेव

+0

क्या आप कोड कोड को पोस्ट कर सकते हैं? –

+0

और SQLite का कौन सा संस्करण आप चल रहे हैं? –

+0

मैं SQLite संस्करण 3 का उपयोग कर रहा हूं –

उत्तर

5

मुझे बार-बार एक ही समस्या का सामना करना पड़ा (मेरे मामले में यह एक रोलबैक था जो संभव नहीं था) जब मैं टेबल प्रविष्टियों पर लूप लूपिंग के अंदर था। जब तक कर्सर प्रविष्टियों को संसाधित कर रहा है, तब तक एक SQL कथन "प्रगति पर है"। मैं बिल्कुल नहीं जानता, अगर यह भी काम करता है, लेकिन यह हो सकता है।

जब आप तालिका प्रविष्टियों की प्रक्रिया और उसी या किसी भिन्न तालिका में प्रविष्टियों को सम्मिलित करने का प्रयास करें, आप स्मृति में और पाश के बाद डेटा एकत्र करने का प्रयास करना चाहें प्रविष्ट करता है या अपडेट करते हैं।

अतिरिक्त जानकारी: "Autocommit" सामान्य रूप से SQLite में "True" पर डिफ़ॉल्ट रूप से डिफ़ॉल्ट होता है (यह निश्चित रूप से आपके द्वारा उपयोग की जाने वाली एक्सेस परत पर भी निर्भर हो सकता है - मैं पाइथन और एपीएसडब्ल्यू का उपयोग कर रहा हूं, इसलिए मैं आपको इसके बारे में और नहीं बता सकता जावा में)। इसका मतलब है कि हर डालने तुरंत autocommited है।

==> यह एक अन्य समाधान हो सकता है। स्मृति में डेटा को संग्रहीत करने के बजाय, आप एक लेनदेन को स्पष्ट रूप से खोलने और लूप के बाद इसे करने का प्रयास कर सकते हैं - इस तरह, समस्या को भी दूर जाना चाहिए।