আপনি এই লাইব্রেরিটি এসকিউএল https://github.com/pmurphyjam/SQLiteDemo জন্য সুইফটে ব্যবহার করতে পারেন
SQLiteDemo
এসকিউএলাইট ডেমো সুইফটে লিখিত এসকিউএলডেটা অ্যাক্সেস ক্লাস সহ সুইফ্ট ব্যবহার করে
আপনার প্রকল্পে যুক্ত করা হচ্ছে
আপনার প্রকল্পে যুক্ত করতে আপনার কেবলমাত্র তিনটি ফাইল দরকার * এসকিউএলডেটাএকসেস.উইফ্ট * ডেটা কনস্ট্যান্টস.সইউফ্ট * ব্রিজিং-শিরোনাম। ব্রিজিং-শিরোনামটি অবশ্যই আপনার এক্সকোডের প্রকল্প 'অবজেক্টিভ-সি ব্রিজিং শিরোলেখ' এর মধ্যে 'সুইফ্ট সংকলক - সাধারণ' এর অধীনে সেট করা উচিত must
ব্যবহারের জন্য উদাহরণ
এসকিউএলডাটাঅ্যাক্সেস.সুইফ্ট দিয়ে কীভাবে সহজ এসকিউএল লিখতে হয় তা দেখতে কেবল ভিউকন্ট্রোলআরসইউফ্টে কোডটি অনুসরণ করুন প্রথমে আপনাকে আপনার লেনদেনের এসকিউএলাইট ডাটাবেস খুলতে হবে
let db = SQLDataAccess.shared
db.setDBName(name:"SQLite.db")
let opened = db.openConnection(copyFile:true)
যদি ওপেন সংযোগটি সফল হয় তবে এখন আপনি টেবিল অ্যাপআইএনফোতে একটি সাধারণ সন্নিবেশ করতে পারেন
//Insert into Table AppInfo
let status = db.executeStatement("insert into AppInfo (name,value,descrip,date) values(?,?,?,?)",
”SQLiteDemo","1.0.2","unencrypted",Date())
if(status)
{
//Read Table AppInfo into an Array of Dictionaries
let results = db.getRecordsForQuery("select * from AppInfo ")
NSLog("Results = \(results)")
}
কত সহজ ছিল দেখুন!
Db.executeStatement এ প্রথম পদটি আপনার স্ট্রিং হিসাবে এসকিউএল হয়, সমস্ত শর্তাবলী অনুসরণ করে যে কোনও হ'ল একটি ভিন্নতর আর্গুমেন্ট তালিকা এবং এটি একটি অ্যারেতে আপনার পরামিতি। এই সমস্ত পদগুলি আপনার এসকিউএল আর্গুমেন্টের তালিকায় কমা দ্বারা পৃথক করা হয়েছে। সিক্যুয়াল স্টেটমেন্টের ঠিক পরে আপনি স্ট্রিংস, ইন্টিজারস, ডেটস এবং ব্লবস প্রবেশ করতে পারেন যেহেতু এই সমস্ত পদটি সিক্যুয়ালের পরামিতি হিসাবে বিবেচিত হয়। বৈকল্পিক আর্গুমেন্ট অ্যারে আপনার সমস্ত সিক্যুয়াল কেবলমাত্র একটি এক্সিকিউটিস্ট স্টেটমেন্ট বা getRecordsForQuery কলটিতে প্রবেশ করা সুবিধাজনক করে তোলে। আপনার যদি কোনও প্যারামিটার না থাকে তবে আপনার এসকিউএল এর পরে কোনও কিছু প্রবেশ করবেন না।
ফলাফল অ্যারে অভিধানের একটি অ্যারে যেখানে 'কী' আপনার সারণী কলামের নাম, এবং 'মান' আপনার এসকিউএলাইট থেকে প্রাপ্ত ডেটা। আপনি সহজেই এই অ্যারের মাধ্যমে একটি লুপের সাহায্যে পুনরাবৃত্তি করতে পারেন বা এটি সরাসরি মুদ্রণ করতে পারেন বা এই অভিধান উপাদানগুলি কাস্টম ডেটা অবজেক্টের জন্য বরাদ্দ করতে পারেন যা আপনি মডেল সেবনের জন্য আপনার ভিউ কন্ট্রোলারগুলিতে ব্যবহার করেন ক্লাসগুলি।
for dic in results as! [[String:AnyObject]] {
print(“result = \(dic)”)
}
এসকিউএলডেটা অ্যাক্সেস সংরক্ষণ করবে, পাঠ্য, ডাবল, ভাসমান, ব্লব, তারিখ, পূর্ণসংখ্যা এবং দীর্ঘ দীর্ঘ পূর্ণসংখ্যার। ব্লবসের জন্য আপনি বাইনারি, ভেরিবিনারি, ব্লব সংরক্ষণ করতে পারেন।
পাঠ্যের জন্য আপনি চর, অক্ষর, নমনীয়, জাতীয় বিচিত্র অক্ষর, নেটিভ চরিত্র, এনসিআর, এনভারচর, বার্চর, বৈকল্পিক, ভিন্ন চরিত্র, পাঠ্য সংরক্ষণ করতে পারেন।
তারিখগুলির জন্য আপনি তারিখের সময়, সময়, টাইমস্ট্যাম্প, তারিখ সংরক্ষণ করতে পারেন।
পূর্ণসংখ্যার জন্য আপনি বিগিন্ট, বিট, বুল, বুলিয়ান, ইন্ট 2, ইনট 8, ইন্টিজার, মিডিয়ামিন্ট, স্মলিন্ট, টিনিনেন্ট, ইনট সংরক্ষণ করতে পারেন।
ডাবলসের জন্য আপনি দশমিক, ডাবল নির্ভুলতা, ভাসা, সংখ্যা, বাস্তব, ডাবল সংরক্ষণ করতে পারেন store ডাবল সবচেয়ে নির্ভুলতা আছে।
এমনকি আপনি নাল টাইপ নুল সংরক্ষণ করতে পারেন।
ভিউকন্ট্রোল.আরউইফ্ট-এ আরও একটি জটিল উদাহরণ তৈরি করা হয় যাতে কীভাবে একটি অভিধানকে 'ব্লব' হিসাবে sertোকানো যায় showing এছাড়াও এসকিউএলডেটা অ্যাক্সেস দেশীয় সুইফট ডেট () বোঝে যাতে আপনি এই বিষয়গুলিকে রূপান্তর করে সন্নিবেশ করতে পারেন এবং এটি সেগুলিকে পাঠ্যে রূপান্তর করবে এবং সেগুলি সংরক্ষণ করবে এবং পুনরুদ্ধার করার পরে এগুলি পাঠ্য থেকে তারিখে ফিরে রূপান্তর করবে।
অবশ্যই এসকিউএলাইটের আসল শক্তি হ'ল এটি লেনদেনের ক্ষমতা। এখানে আপনি আক্ষরিক অর্থে 400 টি এসকিউএল স্টেটমেন্টগুলিকে প্যারামিটারগুলির সাথে সারি করতে পারেন এবং সেগুলি একবারে sertোকাতে পারেন যা এটি এত শক্তিশালী কারণ এটি সত্যই শক্তিশালী। কীভাবে এটি করা যায় তার একটি উদাহরণও ভিউকন্ট্রোলআর.সুইফ্ট আপনাকে দেখায়। আপনি যা করছেন তা হ'ল 'sqlAndParams' নামক একটি অভিধানের অ্যারে তৈরি করা হচ্ছে, এই অ্যারেতে আপনার স্ট্রিং সিক্যুয়াল স্টেটমেন্ট বা ক্যোয়ারির জন্য দুটি কী 'এসকিউএল' দিয়ে স্টোরিং ডিকোরিজগুলি এবং 'পারমস' যা নেটিভ অবজেক্টের এসকিউএলাইটের একটি অ্যারে মাত্র এই প্রশ্নের জন্য বোঝে। প্রতিটি 'sqlParams' যা সিক্যুয়েল ক্যোয়ারী প্লাস পরামিতিগুলির স্বতন্ত্র অভিধান হয় তারপর 'sqlAndParams' অ্যারেতে সংরক্ষণ করা হয় in একবার আপনি এই অ্যারে তৈরি করার পরে, আপনি কেবল কল করুন।
let status = db.executeTransaction(sqlAndParams)
if(status)
{
//Read Table AppInfo into an Array of Dictionaries for the above Transactions
let results = db.getRecordsForQuery("select * from AppInfo ")
NSLog("Results = \(results)")
}
এসকিউএল কোয়েরির জন্য সাধারণ স্ট্রিং এবং কোয়েরির প্রয়োজনীয় প্যারামিটারগুলির জন্য একটি অ্যারে দিয়ে সমস্ত এক্সিকিউটিস্টেটমেন্ট এবং গেটরেকর্ডসফিউরি পদ্ধতিগুলি করা যেতে পারে।
let sql : String = "insert into AppInfo (name,value,descrip) values(?,?,?)"
let params : Array = ["SQLiteDemo","1.0.0","unencrypted"]
let status = db.executeStatement(sql, withParameters: params)
if(status)
{
//Read Table AppInfo into an Array of Dictionaries for the above Transactions
let results = db.getRecordsForQuery("select * from AppInfo ")
NSLog("Results = \(results)")
}
একটি অবজেক্টিভ-সি সংস্করণও বিদ্যমান এবং একে একই এসকিউএলডেটাঅ্যাক্সেস বলা হয়, তাই এখন আপনি নিজের সিক্যুয়ালটি উদ্দেশ্য-সি বা সুইফটে লিখতে বেছে নিতে পারেন। এছাড়াও এসকিউএলডাটা অ্যাক্সেস এসকিউএলসিফারের সাথেও কাজ করবে, বর্তমান কোডটি এখনও এটির সাথে কাজ করার জন্য সেটআপ করেনি, তবে এটি করা বেশ সহজ এবং কীভাবে এটি করা যায় তার একটি উদাহরণ এসকিউএলডেটাঅ্যাক্সেসের উদ্দেশ্য-সি সংস্করণে রয়েছে।
এসকিউএলডেটা অ্যাক্সেস একটি খুব দ্রুত এবং দক্ষ বর্গ, এবং কোরিডাটার জায়গায় ব্যবহার করা যেতে পারে যা কোরিডাটার সাথে উপস্থিত সমস্ত কোরিডাটা কোর ডেটা অখণ্ডতা ত্রুটি ক্র্যাশ ছাড়াই এটি সত্যই কেবল এসকিউলাইট ব্যবহার করে।