मैं सोच रहा था कि मैं अपने एसक्लाइट डीबी कनेक्शन को जगह पर एक क्वेरी को जोड़ने और निष्पादित करने के लिए आवश्यक 6 लाइनों की प्रतिलिपि बनाने/चिपकाने के बजाय एक फ़ंक्शन बनाने की कोशिश करूंगा। मैं इसे बहुमुखी बनाना चाहता हूं इसलिए मैं एक ही फ़ंक्शन का उपयोग/चयन/सम्मिलित/आदि के लिए उपयोग कर सकता हूं ...क्या मैं अपने स्क्लाइट कनेक्शन और कर्सर को फ़ंक्शन में डाल सकता हूं?
नीचे मैंने जो कोशिश की है। 'INSERT' और 'CREATE टेबल' क्वेरी काम कर रहे हैं, लेकिन यदि मैं 'चयन' क्वेरी करता हूं, तो मैं फ़ंक्शन के बाहर लाने वाले मानों के साथ कैसे काम कर सकता हूं?
आमतौर पर मैं इसे प्राप्त मूल्यों को मुद्रित करना चाहता हूं और उनके साथ अन्य चीजें भी करना चाहता हूं।
जब मैं इसे पसंद नीचे मैं एक त्रुटि मिलता है
Traceback (most recent call last):
File "C:\Users\steini\Desktop\py\database\test3.py", line 15, in <module>
for row in connection('testdb45.db', "select * from users"):
ProgrammingError: Cannot operate on a closed database.
तो मुझे लगता है कि कनेक्शन खुला तो मैं कर्सर से मान प्राप्त कर सकते होने की जरूरत है, लेकिन मैं इसे इतना फ़ाइल प्रतिसाद नहीं बंद करने की आवश्यकता हमेशा बंद नहीं है।
import sqlite3
def connection (db, arg, cubby):
conn = sqlite3.connect(db)
conn.execute('pragma foreign_keys = on')
cur = conn.cursor()
cur.execute(arg)
for row in cur:
cubby.append(row)
conn.commit()
conn.close()
cubby=[]
connection('testdb.db', "create table users ('user', 'email')", cubby)
connection('testdb.db', "insert into users ('user', 'email') values ('joey', '[email protected]')", cubby)
for row in connection('testdb45.db', "select * from users", cubby):
print row
मैं कैसे यह काम कर सकते हैं:
यहाँ मेरी परीक्षण कोड है?
संपादित करें: तो यह एक बाहरी सूची में जुड़ जाता है, कोड एक छोटे से तो CUR मूल्यों संशोधित, लेकिन अभी भी बहुत बुरा
भयानक, मुझे इसके साथ कुछ और गड़बड़ करनी होगी, लेकिन अब तक यह वर्ग पूरी तरह से काम कर रहा है जो मैं कर रहा हूं। धन्यवाद –
माइनर नाइट, लेकिन आपको एक की आवश्यकता है: आपके दूसरे कोड ब्लॉक में स्टेटमेंट के बाद :) –