FMPQuery

interface FMPQuery : FMPObject

Представляет собой логику для загрузки данных ресурсов и их чтения из локальной базы данных на основании скомпилированного query.

Since

21.04.01

Samples

import ru.fsight.fmp.FMP
import ru.fsight.fmp.FMPQuery
import ru.fsight.fmp.FMPTable
import ru.fsight.fmp.FMPResult
fun main() { 
   //sampleStart 
   /*
 * Пример создания FMPQuery.
 */
val query: FMPQuery = fmp.query // Создать Builder.
	.select("*")                  // Указать SELECT выражение.
	.from(table)                  // Указать таблицу.
	.build()                      // Создать FMPQuery. 
   //sampleEnd
}
import ru.fsight.fmp.FMP
import ru.fsight.fmp.FMPQuery
import ru.fsight.fmp.FMPTable
import ru.fsight.fmp.FMPResult
fun main() { 
   //sampleStart 
   /*
 * Пример создания более сложного FMPQuery.
 */
val query: FMPQuery = fmp.query                                 // Создать Builder.
	.select("$table1.name, $table2.value")                        // Указать SELECT выражение.
	.from(table1)                                                 // Указать первую таблицу.
	.join(table2, FMPQuery.Join.INNER)                            // JOIN на первой таблице.
	.on("$table1.id = $table2.user_id")                           // Указать ON выражение.
	.where("$table2.value >= 1000 and $table2.something = 'abc'") // Указать WHERE выражение.
	.build()                                                      // Создать FMPQuery. 
   //sampleEnd
}
import ru.fsight.fmp.FMP
import ru.fsight.fmp.FMPQuery
import ru.fsight.fmp.FMPTable
import ru.fsight.fmp.FMPResult
fun main() { 
   //sampleStart 
   /*
 * Пример загрузки данных и их чтения.
 */
if (isOnline) {
	val download: FMPResult<Boolean> = query.download() // Если мы в онлайне, выполнить загрузку/обновление данных.
}
val data: FMPResult<List<Map<String, String>>> = query.read() // Прочесть данные запроса. 
   //sampleEnd
}

Types

Link copied to clipboard
Link copied to clipboard

Тип SQL JOIN запроса. RIGHT и FULL JOIN не поддерживаются текущей реализацией БД SQLite3, но их возможно эмулировать через модификацию SQL запроса.

Link copied to clipboard

Тип запроса SQL ORDER BY.

Properties

Link copied to clipboard
abstract val query: String

Скомпилированный через Builder SQL запрос.

Link copied to clipboard

Список транзакций для использования при выполнении download.

Functions

Link copied to clipboard
abstract fun download(onProgress: (Double) -> Unit = {}): FMPResult<Boolean>

Загрузить данные с сервера.

Link copied to clipboard
abstract operator override fun equals(other: Any?): Boolean

Сравнить объекты между собой.

Link copied to clipboard
abstract override fun hashCode(): Int

Хэш-код объектов. В отличие от equals он будет одинаков для объектов с одинаковыми ключевыми параметрами, но созданными от разных объектов FMP.

Link copied to clipboard
abstract fun read(): FMPResult<List<Map<String, String>>>

Получить данные query запроса. Данные доступны только если до этого был получен кэш через download.

Link copied to clipboard
abstract override fun rebuild(): FMPQuery.Builder
Link copied to clipboard
abstract override fun toString(): String

Получить ключевые параметры объекта в виде строки.