2011-04-03 15 views
6

मैं अपने sqlite3 डेटाबेस में किसी सूची के सभी मान डालने का प्रयास कर रहा हूं। जब मैं पाइथन इंटरैक्टिव दुभाषिया का उपयोग करके इस क्वेरी को अनुकरण करता हूं, तो मैं डीबी को एक ही मान को सही ढंग से सम्मिलित करने में सक्षम हूं। लेकिन मेरा कोड पुनरावृत्ति का उपयोग करते समय विफल रहता है:sqlite3.OperationalError: डेटाबेस लॉक किया गया है

... 
connection=lite.connect(db_name) 
cursor=connection.cursor() 
for name in match: 
     cursor.execute("""INSERT INTO video_dizi(name) VALUES (?)""",(name,)) 
connection.commit() 
... 

error:cursor.execute("""INSERT INTO video_dizi(name) VALUES (?)""",(name,)) 
sqlite3.OperationalError: database is locked 

इस समस्या को दूर करने का कोई तरीका?

+0

इस त्रुटि का एक अच्छा वर्णन के लिए इस उत्तर देखें: http://stackoverflow.com/a/26864360/1157720 – sajjadG

उत्तर

9

क्या आपके पास उस कोड को कहीं और कनेक्शन है जिसका उपयोग आप अभी भी सक्रिय (सक्रिय नहीं) लेनदेन शुरू करने के लिए करते हैं जब आप विफल होने वाले ऑपरेशन को करने का प्रयास करते हैं?

+0

केवल sqlite3 के साथ संबंधित कोड: लाइट के रूप में आयात sqlite3 db_name = "diziport.sqlite" – Fish

+2

महोदय, मैं वास्तव में माफी चाहता हूं लेकिन यह अब इंटरैक्टिव दुभाषिया (सक्रिय मोड में) बंद करने के बाद काम कर रहा है – Fish

+0

@hasseg यह जानना अच्छा होगा कि इसे पाइथन को पुनरारंभ किए बिना इसे कैसे ठीक किया जाए। मैंने कर्सर.क्लोज़() और कनेक्शन.क्लोज़(), डेल (कर्सर), डेल (कनेक्शन) की कोशिश की है। अभी भी यह त्रुटि प्राप्त करें। – neuronet

1

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

+1

जरूरी नहीं कि सच है। बर्कले डीबी का एसक्यूएल एपीआई उपयोग में आसान SQLite एपीआई के साथ-साथ समवर्ती रीड-राइट ऑपरेशंस दोनों का समर्थन करता है। आप इसके बारे में यहां पढ़ सकते हैं: http://bit.ly/hY6MTm। – dsegleau

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