在SQLite.swift中过滤和排序查询

时间:2019-06-30 21:44:50

标签: swift sqlite

当我在查询中使用.filter或.order时,Xcode总是向我返回类似以下错误:

.order:类型“ AnySequence”的值没有成员“ order”。 我的查询是:for nb in try database.prepare(Tcourse).order(course)

.filter:无法将“表达式”类型的值转换为预期的参数类型“(行)引发->布尔”。我的查询是:for nb in try database.prepare(Tcourse).filter(course == courseactu)

这是我的代码:

 import UIKit 
 import SQLite

class CourseViewController: UIViewController {
    var database : Connection!
    let Tcourse = Table("Tcourse");
    let id = Expression<Int>("id");
    let course = Expression<String>("course");
    let nbparc = Expression<Int>("nbparc");

override func viewDidLoad() {
        super.viewDidLoad()
        do{
            let documentDirectory = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
            let fileUrl = documentDirectory.appendingPathComponent("users").appendingPathExtension("sqlite3")
            let database = try Connection(fileUrl.path)
            self.database = database
        } catch {
            print("error")
        }
let courseactu = UserDefaults.standard.string(forKey: "CourseActu") ?? ""
        do{
            for nb in try database.prepare(Tcourse).order(course) {
                print("\(nb[nbparc])")
            }

            }catch{
            print(error)
        }
    }

编辑: 如果没有.filter或.order,我的查询将起作用。

database.prepare(Tcourse)

1 个答案:

答案 0 :(得分:0)

感谢@rmaddy

答案是:

-

.filter与表名放在相同的括号中!