FMPQuery

Описание

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

class FMPQuery

Свойства

Свойство Описание

database

База данных.
var database: FMPDatabase? { get }
query SQL-запрос в базу данных.
var query: String { get }
isResumable Использование докачки при запросе к серверу.
var isResumable: Bool { get set }

pathForResume

Путь к папке в директории приложения, где будут храниться файлы докачки.
var pathForResume: String { get set }

Методы

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

download(transactions:completion:)

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

Параметры:

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

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

get() Выполнение SQL-запроса в базу данных. Возвращает словарь NSDictionary с записями из базы данных.
func get() -> [NSDictionary]?

Примеры

Включение/выключение докачки:

// Построим экземпляр класса FMPQuery. Подробнее в примерах к FMPQuery.Builder.
let query: FMPQuery = fmp.query.build()
  
// Установим путь к папке в локальной директории для файлов докачки
query.pathForResume = "path"
//Включим докачку
query.isResumable = true
  
// Выключим докачку
query.isResumable = false

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

// Построим экземпляр класса FMPQuery. Подробнее в примерах к FMPQuery.Builder.
let query: FMPQuery = fmp.query.build()
  
// Загрузим данные указанных в запросе ресурсов
query.download() { (responses) in
    if !responses.map({ $0.success }).contains(false) {
        // Все данные указанных в запросе ресурсов успешно загружены в базу данных
    } else {
        // Выведем коды и описания ошибок
        responses.compactMap({ $0.error }).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 }).forEach {
            print($0.code, $0.description)
        }
    }
}

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

// Построим экземпляр класса FMPQuery. Подробнее в примерах к FMPQuery.Builder.
let query: FMPQuery = fmp.query.build()
  
// Получим результат sql-запроса в базу данных
let sqlResult: [NSDictionary]? = query.get()

См. также:

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