iOS Xcodeサンプルプロジェクト

これらはサンプルテストプロジェクトであるため、正しく機能するには、プロジェクト名をlitesync-testにする必要があります。

この制限は完全なライブラリには存在しません。


SQLite.swiftラッパー

SQLite.swiftラッパーを使用する2つのサンプルプロジェクトがあります。


最初のものは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)") }

ダウンロード



2つ目はオブジェクトを使用します:

let tasks = Table("tasks") let id = Expression("id") let name = Expression("name") let done = Expression("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シェルと依存関係をコンピューターにインストールします

2  TCPiteアドレスにバインドするプライマリノードとしてSQLiteシェルを起動します

3  プロジェクトコードで接続するTCPアドレスを変更します

4  シミュレーターまたはデバイスでプロジェクトをビルドして実行する


プライマリノードでデータベースを開くには、次のようなコマンドを使用します:

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