Класс FMPQuery.Builder является строителем для класса FMPQuery.
class Builder
Метод | Описание |
build() | Построение экземпляра класса FMPQuery.
Возвращает объект типа FMPQuery.
func build() -> FMPQuery |
from(_:) | Добавление в SQL-запрос оператора FROM.
func from(_ table: FMPTable) -> Builder Параметры:
|
group(by:) | Добавление в SQL-запрос оператора GROUP BY.
func group(by columns: [String]) -> Builder Параметры:
|
having(_:) | Добавление в SQL-запрос оператора HAVING.
func having(_ conditions: [String]) -> Builder Параметры:
|
join(_:type:) | Добавление в SQL-запрос оператора JOIN.
Параметры:
|
limit(_:offset:) | Добавление в SQL-запрос оператора LIMIT.
func limit(_ limit: Int, offset: Int? = nil) -> Builder Параметры:
|
on(_:) | Добавление в SQL-запрос оператора ON.
func on(_ conditions: [String]) -> Builder Параметры:
|
order(by:) | Добавление в SQL-запрос оператора ORDER BY.
func order(by columns: [(column: String, asc: OrderType)]) -> Builder Параметры:
|
select(_:) | Добавление в SQL-запрос оператора SELECT.
func select(_ columns: [String] = ["*"]) -> Builder Параметры:
|
transactions(_:) | Добавление списка транзакций, которые будут использоваться
при загрузке соответствующих ресурсов с помощью метода download(completion:)
класса FMPQuery.
func transactions(_ transactions: [FMPTransaction]) -> Builder Параметры:
|
using(_:) | Добавление в SQL-запрос оператора USING.
func using(_ column: String) -> Builder Параметры:
|
where(_:) | Добавление в SQL-запрос оператора WHERE.
func where(_ conditions: [String]) -> Builder Параметры:
|
Построение экземпляра класса FMPQuery:
// Построим экземпляры класса FMPTable
let table1: FMPTable = fmp.table.build()
let table2: FMPTable = fmp.table.build()
// Построим экземпляры класса FMPTransaction
let transaction1: FMPTransaction = fmp.transaction.build()
let transaction2: FMPTransaction = fmp.transaction.build()
// Построим экземпляр класса FMPQuery с query-выражением:
// SELECT column from table1 LEFT JOIN table2 USING(column) WHERE id = 0 AND key = all ORDER BY column ASC
// Также добавим список транзакций, который будет использоваться при загрузке ресурсов для table1 и table2
let query: FMPQuery = fmp.query
.select(["column"])
.from(table1)
.join(table: table2, type: .left)
.using("column")
.where(["id = 0", "key = all"])
.order(by: [("column", .asc)])
.transactions([transaction1, transaction2])
.build()
См. также: