2017-05-09 2 views
0

example는 AS :sqlite.swift, 이름을 통해 필드 값을 제공하는 방법?

for user in try db.prepare(users.select(id, email)) { 
    print("id: (user[id]), email: (user[email])") 
    // id: 1, email: [email protected] 
} 
    // SELECT "id", "email" FROM "users" 

하지만 난 알고 싶어 가능한 사용 이름 만 발현 또는 인덱스?

나는 의미 :

하자 아이디 = 사용자 [ "메일"] 다음 필드 '이메일'

가 지원하지 보일의 값을 가지고?

+0

나는 코드 지원을하는 방식을 수정해야 ... 나는 당신의 의견에 감사입니다 – iXcoder

답변

0

아니요, SQLite.swift는 행 이름에 액세스하는 것을 지원하지 않습니다.

// Using raw SQL: 
let rows = Row.fetchCursor(db, "SELECT * FROM users") 
while let row = rows.next() { 
    let id: Int64 = row.value(named: "id") 
    let email: String = row.value(named: "email") 
} 

// Using a "query interface request", and raw row access: 
let request = User.all() 
let rows = Row.fetchCursor(db, request) 
while let row = rows.next() { 
    let id: Int64 = row.value(named: "id") 
    let email: String = row.value(named: "email") 
} 

// Using a natural "query interface request": 
let users = User.fetchAll(db) // [User] 
+0

, 내가 가진 :

대안은 당신이 원하는 경우에 당신이 열 이름으로 열 값에 액세스 할 수있는 GRDB.swift입니다 코드 지원을 수정하는 방법 .. – iXcoder

+0

swift.sqlite^0^ 아마도 GRDB가 더 좋을 수도 있습니다. swift.sqlite를 사용하는 것이 좋습니다. swift.sqlite는 훌륭합니다. 확장하기가 쉽지 않고 매우 유연하지 않은 Binding을 사용하는 값에 액세스하는 것을 혼란스럽게합니다 ... 나는 내 아이디어를 충족시키기 위해 코드를 업데이트해야합니다. 곧 git에서 코드를 공개 할 것이다. – iXcoder

관련 문제