FMPQuery

Описание

Класс FMPQuery предназначен для описания запроса данных.

class FMPQuery

Свойства

Свойство Описание
query SQL-запрос в базу данных.
var query: String { get }

Методы

Метод Описание

download(transactions:completion:)

Загрузка табличных данных в базу данных.
func download(transactions: [FMPTransaction] = [], completion: @escaping ([DownloadResponse]) -> Void)

Параметры:

  • transactions. Список транзакций, используемых при запросах;

  • completion. Замыкающее выражение, содержащее результат выполнения метода.

get() Выполнение SQL-запроса в базу данных.
func get() throws -> QueryResult?
copy() Получение экземпляра класса-строителя для копирования FMPQuery. Возвращает экземпляр класса-строителя FMPQuery.Builder.
func copy() -> FMPQuery.Builder

Примеры

Загрузка табличных данных в базу данных:

// Построим экземпляр класса FMPQuery
let query: FMPQuery = fmp.query.build()
 
// Загрузим данные указанных в запросе ресурсов
query.download() { (responses) in
    if !responses.map({ $0.success }).contains(false) {
        // Все данные указанных в запросе ресурсов успешно загружены в базу данных
    } else {
        // Выведем коды и описания ошибок
        responses.compactMap({ $0.error as? FMPError }).forEach {
            print($0.code, $0.description)
        }
    }
}
 
// Загрузим данные с указанием транзакции
let transaction: FMPTransaction
query.download(transactions: [transaction]) { (responses) in
    if !responses.map({ $0.success }).contains(false) {
        // Все данные указанных в запросе ресурсов успешно загружены в базу данных
    } else {
        // Выведем коды и описания ошибок
        responses.compactMap({ $0.error as? FMPError }).forEach {
            print($0.code, $0.description)
        }
    }
}

Выполнение SQL-запроса:

// Построим экземпляр класса FMPQuery
let query: FMPQuery = fmp.query.build()
 
// Получим результат SQL-запроса в базу данных
do {
    let sqlResult = try query.get()
} catch let error {
    // Выведем код и описание ошибки
    print((error as? FMPError)?.code, (error as? FMPError)?.description)
}

Копирование экземпляра класса FMPQuery:

// Построим экземпляр класса FMPQuery
let query: FMPQuery = fmp.query.build()
 
// Скопируем экземпляр класса FMPQuery
let queryCopy: FMPQuery = query.copy().build()

См. также:

Фреймворк FMPKit | Классы