Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> IOS

मैं iPhone पर SQLite डेटाबेस इंस्टेंस का उपयोग कैसे करूं

<घंटा/>

जब हम किसी एप्लिकेशन को डिजाइन करते हैं तो डेटा स्टोर करना सबसे महत्वपूर्ण चीजों में से एक है। डेटा को स्टोर करने के कई तरीके हैं, ऐसा ही एक तरीका है SQLite डेटाबेस।

IPhone पर SQLite डेटाबेस तक पहुँचने के कई तरीके हैं, हम स्विफ्ट में ऐसा करने का सबसे आसान तरीका देखेंगे।

SQLite एक रिलेशनल डेटाबेस मैनेजमेंट सिस्टम है जो किसी एप्लिकेशन में एम्बेडेड C प्रोग्रामिंग लाइब्रेरी में निहित है।

इस ट्यूटोरियल में हम एक नमूना एप्लिकेशन बनाएंगे जिसमें नाम दर्ज करने के लिए एक टेक्स्ट फ़ील्ड होगा, हम नाम को अपने SQLite डेटाबेस में संग्रहीत करेंगे और जब उपयोगकर्ता शो बटन पर टैप करेगा तो इसे प्रिंट कर देगा।

तो चलिए शुरू करते हैं

चरण 1 - ओपन एक्सकोड -→ सिंगल व्यू एप्लीकेशन -→ चलो नाम डीबीएसक्लाइट है।

चरण 2 - आइए अपना UI विकसित करें, Main.storyboard खोलें और नीचे दिखाए गए अनुसार एक टेक्स्ट फ़ील्ड और दो बटन जोड़ें।

चरण 3 - टेक्स्ट फ़ील्ड के लिए बटन और @IBOutlet दोनों के लिए @IBAction बनाएं और उन्हें क्रमशः btnInsert, btnShowData और नाम नाम दें।

मैं iPhone पर SQLite डेटाबेस इंस्टेंस का उपयोग कैसे करूं

इसलिए हमने दो बटन जोड़े हैं एक डेटा डालने के लिए और दूसरा इसे प्रदर्शित करने के लिए। हमने एक टेक्स्ट फ़ील्ड भी बनाया है जहाँ हम वह नाम दर्ज कर सकते हैं जिसे db में डालना है।

चरण 4 − आइए अपनी SQLite फ़ाइल बनाएं और डेटाबेस कनेक्शन खोलें।

ViewController.swift में लिखें

SQLite3 आयात करें

ViewDidLoad के तहत निम्न कोड लिखें, यह एक .sqlite फ़ाइल बनाएगा और हम उस स्थान को प्रिंट कर सकते हैं जहां इसे बनाया गया था। हम अपनी sqlite फ़ाइल को "user_name.sqlite" नाम दे रहे हैं क्योंकि हम केवल नाम डालने जा रहे हैं।

 चलो file_URL =कोशिश करें! FileManager.default.url(for:.documentDirectory, in:.userDomainMask, उपयुक्तके लिए:nil, create:false)।appendingPathComponent("user_name.sqlite")

अब हम डेटाबेस खोलने के लिए sqlite3_open() फ़ंक्शन का उपयोग करेंगे।

OpaquePointer का ऑब्जेक्ट बनाएं। हम इसका उपयोग संचालन के लिए करेंगे। इस वैरिएबल को वैश्विक स्तर पर ViewDidLoad के ऊपर बनाएं।

वर डीबी:अपारदर्शी सूचक?

चरण 5 - चलिए अब टेबल बनाते हैं, टेबल बनाने के लिए नीचे दिए गए कोड को अपने viewDidLoad मेथड में लिखें।

//तालिका बनानायदि sqlite3_exec(db, "तालिका बनाएं यदि उपयोगकर्ता मौजूद नहीं हैं (आईडी पूर्णांक प्राथमिक कुंजी स्वचालन, नाम टेक्स्ट)", शून्य, शून्य, शून्य)! =SQLITE_OK { त्रुटि संदेश =स्ट्रिंग (cString:sqlite3_errms दें) )!) प्रिंट ("टेबल बनाने में त्रुटि हुई:\(errorMsg)")}

चरण 5 के बाद, आपका अंतिम कोड नीचे पसंद किया जाना चाहिए।

<पूर्व>आयात करें UIKitimport SQLite3class ViewController:UIViewController { var db:OpaquePointer? @IBOutlet वर नाम:UITextField! ओवरराइड func viewDidLoad() {super.viewDidLoad() चलो file_URL =कोशिश करें! FileManager.default.url(for:.documentDirectory, in:.userDomainMask, उपयुक्तफॉर:nil, create:false)।appendingPathComponent("user_name.sqlite") Print (file_url) // sqlite के पथ को प्रिंट करने के लिए। // डेटाबेस खोलना अगर sqlite3_open (file_URL.path, और db)! =SQLITE_OK {प्रिंट ("डेटाबेस खोलने में त्रुटि है")} // तालिका बनाएं यदि sqlite3_exec (डीबी, "तालिका बनाएं यदि मौजूद नहीं है तो उपयोगकर्ता (आईडी पूर्णांक प्राथमिक) कुंजी स्वचालन, नाम टेक्स्ट)", शून्य, शून्य, शून्य)! =SQLITE_OK { त्रुटि संदेश =स्ट्रिंग (cString:sqlite3_errmsg (डीबी)!) प्रिंट करें ("तालिका बनाने में त्रुटि है:\ (errorMsg)")}} @IBAction func btnInsert(_ प्रेषक:कोई भी) { } @IBAction func btnShowData(_ प्रेषक:कोई भी) { }}

उपरोक्त कोड चलाएँ और आपको कोई त्रुटि नहीं मिलनी चाहिए, स्थान पर नेविगेट करके sqlite फ़ाइल देखें।

चरण 6 - अब हम डेटा डालने के लिए कोड लिखेंगे, इसलिए btnInsert में नीचे कोड लिखें

var कथन:OpaquePointer?guard let user_name =name.text, !user_name.isEmpty else { return}query ="INSERT INTO Users (नाम) VALUES (?)" if sqlite3_prepare(db, query, -1, &statement) , nil) !=SQLITE_OK { errmsg =String(cString:sqlite3_errmsg(db)!) प्रिंट करें ("इन्सर्ट तैयार करने में त्रुटि:\(errmsg)") रिटर्न} if sqlite3_bind_text(statement, 1, user_name, -1, nil)! =SQLITE_OK { errmsg =स्ट्रिंग (cString:sqlite3_errmsg (db)!) प्रिंट करें ("विफलता बाध्यकारी नाम:\ (errmsg)") वापसी} अगर sqlite3_step (कथन)! =SQLITE_DONE { errmsg =स्ट्रिंग (cString:sqlite3_errmsg (डीबी) दें )!) प्रिंट ("उपयोगकर्ताओं को सम्मिलित करने में विफलता:\(errmsg)")वापसी

यहां हम केवल टेक्स्ट फ़ील्ड से अपने टेबल पर अपने मान लिख रहे हैं।

चरण 7 - अब हमें डेटा दिखाना चाहिए नीचे दिए गए कोड को btnShowData में लिखें

 क्वेरी ="उपयोगकर्ताओं से चुनें" var कथन:OpaquePointer? if sqlite3_prepare (डीबी, क्वेरी, -1, और कथन, शून्य)! =SQLITE_OK { errmsg =स्ट्रिंग (cString:sqlite3_errmsg (डीबी)!) प्रिंट करें ( "इन्सर्ट तैयार करने में त्रुटि:\(errmsg)") रिटर्न}जबकि(sqlite3_step(statement) ==SQLITE_ROW) { let name =String(cString:sqlite3_column_text(statement, 1)) Print(name)}

आपका अंतिम कोड नीचे पसंद किया जाना चाहिए

<पूर्व>आयात करें UIKitimport SQLite3class ViewController:UIViewController { var db:OpaquePointer? @IBOutlet वर नाम:UITextField! ओवरराइड func viewDidLoad() {super.viewDidLoad() चलो file_URL =कोशिश करें! FileManager.default.url(for:.documentDirectory, in:.userDomainMask, उपयुक्तके लिए:nil, create:false) .appendingPathComponent("user_name.sqlite") // डेटाबेस खोलना अगर sqlite3_open(file_URL.path, &db) !=SQLITE_OK {प्रिंट ("डेटाबेस खोलने में त्रुटि है")} // तालिका बनाना अगर sqlite3_exec (डीबी, "तालिका बनाएं यदि उपयोगकर्ता मौजूद नहीं हैं (आईडी इंटीजर प्राथमिक कुंजी ऑटोइनक्रिमेंट, नाम टेक्स्ट)", शून्य, शून्य, शून्य)! =SQLITE_OK { त्रुटि संदेश =स्ट्रिंग (cString:sqlite3_errmsg (db)!) प्रिंट ("तालिका बनाने में त्रुटि है:\ (errorMsg)")}} @IBAction func btnInsert (_ प्रेषक:कोई भी) { var कथन:OpaquePointer? गार्ड चलो user_name =name.text, !user_name.isEmpty else {वापसी} क्वेरी करने दें ="उपयोगकर्ताओं (नाम) मूल्यों (?) में सम्मिलित करें" यदि sqlite3_prepare(db, query, -1, &statement, nil) !=SQLITE_OK {चलो errmsg =String(cString:sqlite3_errmsg(db)!) प्रिंट ("इन्सर्ट तैयार करने में त्रुटि:\(errmsg)") रिटर्न} अगर sqlite3_bind_text (कथन, 1, user_name, -1, nil)! =SQLITE_OK { errmsg =String( cString:sqlite3_errmsg(db)!) प्रिंट ("विफलता बाध्यकारी नाम:\(errmsg)") वापसी} अगर sqlite3_step (कथन)! =SQLITE_DONE { errmsg =स्ट्रिंग (cString:sqlite3_errmsg (db)!) प्रिंट करें ("विफलता डालने में विफलता) उपयोगकर्ता:\(errmsg)") वापसी } } @IBAction func btnShowData (_ प्रेषक:कोई भी) { क्वेरी करने दें ="उपयोगकर्ताओं से चुनें" var कथन:OpaquePointer? अगर sqlite3_prepare(db, query, -1, &statement, nil) !=SQLITE_OK { errmsg =String(cString:sqlite3_errmsg(db)!) प्रिंट करें ("एरर तैयारी इंसर्ट:\(errmsg)") रिटर्न} जबकि(sqlite3_step( स्टेटमेंट) ==SQLITE_ROW) { नाम दें =स्ट्रिंग (cString:sqlite3_column_text (कथन, 1)) प्रिंट (नाम)}}}}

अब हम कोड चलाएंगे और देखेंगे कि HELLO नाम दर्ज करें और इन्सर्ट पर टैप करें। फिर शो पर टैप करें आप देखेंगे कि HELLO को एक्सकोड में डीबगर क्षेत्र में आउटपुट में प्रिंट किया जा रहा है।

मैं iPhone पर SQLite डेटाबेस इंस्टेंस का उपयोग कैसे करूं

मैं iPhone पर SQLite डेटाबेस इंस्टेंस का उपयोग कैसे करूं


  1. iPhone पर गाइडेड एक्सेस क्या है (और इसका उपयोग कैसे करें)?

    जब आप अपना Apple iPhone किसी को सौंपते हैं, तो आप उन्हें जोखिम में डालते हैं कि वे इधर-उधर घूमें या उन क्षेत्रों में ठोकर खाएँ जो उन्हें नहीं करना चाहिए। यहीं से गाइडेड एक्सेस दिन बचा सकता है। जानें कि गाइडेड एक्सेस क्या है और इसे अपने iPhone पर कैसे इस्तेमाल करें। iPhone पर गाइडेड एक्सेस क्या है?

  1. iPhone पर फोटो एलबम का नाम कैसे बदलें

    क्या आपका iPhone फ़ोटो और एल्बम से भरा है? कभी-कभी आपको उन एल्बमों की पहचान करना मुश्किल हो सकता है जिन्हें आपने पहले नामित किया है। जब भी आप अपने iPhone गैलरी पर कोई एल्बम बनाते हैं तो यह आपसे एक नाम मांगता है। लेकिन कई बार ऐसा भी होता है जब आप गलती से गलत नाम दर्ज कर देते हैं और बदलाव करना चाहते ह

  1. iPhone पर ब्लूटूथ नाम कैसे बदलें?

    सभी स्मार्टफ़ोन में डिवाइस निर्माताओं द्वारा विकसित ब्लूटूथ तकनीक होती है। भले ही Apple ब्लूटूथ के माध्यम से अपने उपकरणों के बीच डेटा के हस्तांतरण की सुविधा नहीं देता है, फिर भी, यह सभी स्मार्टफ़ोन में एक महत्वपूर्ण विशेषता है। ब्लूटूथ तकनीक का उपयोग स्पीकर या स्मार्ट टीवी जैसे अन्य डिवाइस पर ऑडियो,