Фильтр и заказ запросов в SQLite.swift - PullRequest
2 голосов
/ 01 июля 2019

Когда я использую .filter или .order в своих запросах, Xcode всегда возвращает мне ошибку вроде:

.order: значение типа AnySequence не имеет члена order. Мой запрос: for nb in try database.prepare(Tcourse).order(course)

.filter: Невозможно преобразовать значение типа 'Выражение' в ожидаемый тип аргумента '(Row) throws -> Bool'. Мой запрос: 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 голосов
/ 01 июля 2019

Благодаря @ rmaddy

Ответ:

for nb in try database.prepare(Tcourse.filter(course == courseactu))

.filter в тех же скобках, что и имя таблицы!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...