Как получить список имен столбцов с помощью Sqlite.swift?

В целях отладки я пытаюсь получить простой список имен столбцов в моей таблице SQLite. Я использую инфраструктуру SQLite.swift.

Мой вопрос более конкретный, чем Как получить список имен столбцов на sqlite3/iPhone?, поэтому я создаю новый вопрос.

Используя

try db.execute("PRAGMA table_info(table_name);")

применив этот ответ к documentation, не работал у меня (ничего не случилось).

Ответ 1

Предполагая, что у вас уже установлено соединение с базой данных db, чтобы получить список имен столбцов, вы можете использовать следующий код:

do {

    let tableInfo = Array(try db.prepare("PRAGMA table_info(table_name)"))
    for line in tableInfo {
        print(line[1]!, terminator: " ")
    }
    print()

} catch _ { }

где table_name заменяется литеральной строкой имени вашей таблицы.

Вы также можете добавить

print(tableInfo)

чтобы увидеть больше информации о вашей таблице.

Кредиты

Благодаря этому ответу за подсказку, как это сделать.

Пример Функция

Протестированная процедура из Joe Blow, чтобы немного набрать текст:

func findColumns(_ tableName:String) {

    var asAnArray:[String] = []
    do {
        let s = try db!.prepare("PRAGMA table_info(" + tableName + ")" )
        for row in s { asAnArray.append(row[1]! as! String) }
    }
    catch { print("some woe in findColumns for \(tableName) \(error)") }

    let asAString = asAnArray.joined(separator: ",")

    print(asAnArray)
    print(asAString)
}