عينات من مشاريع iOS XCode

هذه مشاريع اختبار لذلك يجب أن تسمى بـ litesync-test كي تعمل بشكل صحيح.

هذه القيود غير موجودة في المكتبات الكاملة.


SQLite.swift wrapper

تجد هنا مشروعين نستخدم في كل منهما SQLite.swift wrapper.


لدينا في المشروع الأول واجهة بسيطة باستخدام SQL:

try db.execute("CREATE TABLE IF NOT EXISTS Tasks (id INTEGER PRIMARY KEY, name TEXT, done INTEGER)") try db.run("INSERT INTO Tasks (name, done) VALUES (?,?)", name, Int(done!)) for row in try db.prepare("SELECT * FROM Tasks") { let id = row[0] as! Int64 let name = row[1] as! String let done = Int(row[2] as! Int64) print("id: \(id) name: \(name) done: \(done)") }

التنزيل



يستخدم المشروع الثاني الأغراض:

let tasks = Table("tasks") let id = Expression<Int64>("id") let name = Expression<String>("name") let done = Expression<Int>("done") try db.run(tasks.create(ifNotExists: true) { t in t.column(id, primaryKey: true) t.column(name) t.column(done) }) try db.run(tasks.insert(name <- taskname, done <- isdone!)) for task in try db.prepare(tasks) { print("id: \(task[id]) name: \(task[name]) done: \(task[done])") }

التنزيل



واجهة SQLite الأصلية

هذا المثال يستخدم واجهة SQLite الأصلية

let queryString = "SELECT * FROM Tasks" var stmt:OpaquePointer? if sqlite3_prepare(db, queryString, -1, &stmt, nil) != SQLITE_OK{ let errmsg = String(cString: sqlite3_errmsg(db)!) print("error preparing statement: \(errmsg)") return } while(sqlite3_step(stmt) == SQLITE_ROW){ let id = sqlite3_column_int(stmt, 0) let name = String(cString: sqlite3_column_text(stmt, 1)!) let done = sqlite3_column_int(stmt, 2) print("id: \(id) name: \(name) done: \(done)") } sqlite3_finalize(stmt)

التنزيل



التعليمات

اتبع هذه التعليمات من أجل المشروعين:

1  قم بتثبيت SQlite Shell المعدلة وكذلك الاعتماديات على جهاز الحاسب.

2  قم بتشغيل SQLite shell كعقدة أولية مرتبطة بعنوان TCP.

3  قم بتعديل عنوان TCP لتحقيق الاتصال مع عقدة المشروع.

4  ابن ونفذ المشروع على الجهاز أو المحاكي.


لفتح قاعدة البيانات من عقدة أولية نستخدم أمر كالتالي:

sqlite3 "file:test.db?node=primary&bind=tcp://0.0.0.0:1234"