FMPDatabase

Представляет собой локальную базу данных. Используется SQLite.

Since

21.04.01

See also

Samples

import ru.fsight.fmp.FMP
import ru.fsight.fmp.FMPDatabase
import ru.fsight.fmp.FMPResult
import ru.fsight.fmp.FMPUser
fun main() { 
   //sampleStart 
   /*
 * Пример создания объекта БД в постоянном хранилище пользователя.
 */
val database: FMPDatabase = fmp.database // Создать Builder.
	.path(user.storage + "/example.db")    // Указать путь к БД.
	.build()                               // Создать FMPDatabase. 
   //sampleEnd
}
import ru.fsight.fmp.FMP
import ru.fsight.fmp.FMPDatabase
import ru.fsight.fmp.FMPResult
import ru.fsight.fmp.FMPUser
fun main() { 
   //sampleStart 
   /*
 * Создание или открытие базы данных.
 * Если БД не существует по указанному пути, то она будет создана.
 */
val open_or_create: Boolean = database.open().result  // True если БД была открыта или создана. False если нет прав на запись или иная ошибка.
val close:  Boolean = database.close().result // True если база данных була успешно закрыта.
val delete: Boolean = database.drop().result  // True если база данных была удалена с файловой системы. 
   //sampleEnd
}
import ru.fsight.fmp.FMP
import ru.fsight.fmp.FMPDatabase
import ru.fsight.fmp.FMPResult
import ru.fsight.fmp.FMPUser
fun main() { 
   //sampleStart 
   /*
 * Пример выполнение прямого SQL запроса к БД.
 */
val query:   String  = "DROP TABLE my_table;"
val result1: Boolean = database.query(query).result // True если запрос выполнен успешно.

val select: String = "SELECT * FROM my_table;"
val result2: List<Map<String, String>> =
	database.select(select).result // Элемент списка - строка БД, где мапа - связь колонка-значение для строки. 
   //sampleEnd
}
import ru.fsight.fmp.FMP
import ru.fsight.fmp.FMPDatabase
import ru.fsight.fmp.FMPResult
import ru.fsight.fmp.FMPUser
fun main() { 
   //sampleStart 
   /*
 * Пример получения данных из БД.
 */
val query: String = "SELECT * FROM my_table;"
val result: List<Map<String, String>> = database.select(query).result 
   //sampleEnd
}
import ru.fsight.fmp.FMP
import ru.fsight.fmp.FMPDatabase
import ru.fsight.fmp.FMPResult
import ru.fsight.fmp.FMPUser
fun main() { 
   //sampleStart 
   /*
 * Пример объединения нескольких БД для общего запроса.
 * В данном случае db1 будет главной БД, к которой будем отправлять запросы.
 */
val query: String =
	"SELECT $db1.table1.id, $db2.table2.data FROM $db1.table1 JOIN ON $db1.table1.id = $db3.table3.id;"
val attach: FMPResult<Boolean>        = db1.attach(db2, db3)
val result: List<Map<String, String>> = db1.select(query).result 
   //sampleEnd
}

Types

Link copied to clipboard

Смотри FMPObject.Builder. Обязательные параметры: path.

Properties

Link copied to clipboard
abstract val name: String

Название базы данных. Извлекается из path.

Link copied to clipboard
abstract val path: String

Полный путь к базе данных на локальной файловой системе.

Functions

Link copied to clipboard
abstract fun attach(vararg databases: FMPDatabase): FMPResult<Boolean>

Присоединить базы данных к указанной базе через ATTACH DATABASE.

Link copied to clipboard
abstract fun close(): FMPResult<Boolean>

Закрыть базу данных и очистить кэш (*-shm and *-wal файлы).

Link copied to clipboard
abstract fun drop(): 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 open(): FMPResult<Boolean>

Открыть базу данных.

Link copied to clipboard
abstract fun query(query: String): FMPResult<Boolean>

Выполнить SQL запрос в базу.

Link copied to clipboard
abstract override fun rebuild(): FMPDatabase.Builder
Link copied to clipboard
abstract fun select(query: String): FMPResult<List<Map<String, String>>>

Выполнить SQL запрос в базу с получением данных.

Link copied to clipboard
abstract override fun toString(): String

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