Проблема запроса FMDB / sqlite с функцией - PullRequest
0 голосов
/ 16 февраля 2020

Я действительно новичок в стремлении и пытаюсь понять ios программирование. В основном у меня есть таблица, в которой столбцы «id» и «fact». id - это первичный ключ, а вот функция быстрого доступа. Я пытаюсь запросить значения

func getItemsFromRow(fact_cid: String) ->[FactsData]{
    var rowData: [FactsData]!
    let rawQ = "select * from facts where \(facts_id)=?"
    if (openDatabase()){
        do{
            let results = try database.executeQuery(rawQ, value(forKey: fact_cid))
            while results.next(){
                let currentFact = FactsData(factid: results.string(forColumn: facts_id), factsdata: results.string(forColumn: facts_fld))
                if rowData == nil {
                    rowData = [FactsData]()
                }
                rowData.append(currentFact)
            }
        }
    }
    return rowData
}

Но эта строка дает мне ошибку

let results = try database.executeQuery(rawQ, value(forKey: fact_cid))

Ошибка

Cannot invoke 'executeQuery' with an argument list of type '(String, Any?)'

Я пытаюсь передать идентификатор в виде строки. Не уверен, что я здесь делаю не так.

Любая помощь очень ценится.

1 Ответ

1 голос
/ 16 февраля 2020

Измените его на

let results = try database.executeQuery(rawQ, values: [fact_cid])

, поскольку второй параметр должен быть массивом

...