В данном модуле содержатся классы и методы для выполнения локальных sql запросов
Примечание
При вызове версий функций, не имеющих среду выполнения запросов
SqlRuntimeв качестве одного из своих параметров, будет произведена попытка ее получения из инициализированного ядра приложенияCore
axioma.core.sql.selectAsTable(query_text, context, runtime)¶Выполнить запрос к таблицам и получить результат в виде таблицы
Параметры:
- query_text (
str) – текст запроса- context (
TableContext) – контекст таблиц- runtime (
SqlRuntime) – среда выполнения запросовРезультат: таблица, представляющая результат запроса
Тип результата: Исключение: Runtime –
RuntimeException- Ошибка времени выполнения
axioma.core.sql.selectAsTable(query_text, context)Выполнить запрос к таблицам и получить результат в виде таблицы
Параметры:
- query_text (
str) – текст запроса- context (
TableContext) – контекст таблицРезультат: таблица, представляющая результат запроса
Тип результата: Исключение: Runtime –
RuntimeException- Ошибка времени выполненияПример использования¶# Запрос всех стран с названием 'Hungary' from axioma.core.sql import * # ... # table - Таблица 'world' # ... # создадим контекст context = SimpleTableContext(table) # SELECT AS TABLE query_text = "SELECT * FROM world WHERE country=\"Hungary\"" select_table = selectAsTable(query_text, context) print("Имя таблицы выборки: %s" % select_table.name()) print("Количество записей: %d" % len(select_table.allFeatures())) print("Количество атрибутов: %d" % len(select_table.attributeNames())) # Вывод: # >>> Имя таблицы выборки: Query # >>> Количество записей: 1 # >>> Количество атрибутов: 32
axioma.core.sql.select(query_text, context, runtime)¶Запрос типа “Выборка” (SELECT)
Параметры:
- query_text (
str) – текст запроса- context (
TableContext) – контекст таблиц- runtime (
SqlRuntime) – среда выполнения запросовРезультат: результат выполнения запроса
Тип результата: Исключение: Runtime –
RuntimeException- Ошибка времени выполнения
axioma.core.sql.select(query_text, context)Запрос типа “Выборка” (SELECT)
Параметры:
- query_text (
str) – текст запроса- context (
TableContext) – контекст таблицРезультат: результат выполнения запроса
Тип результата: Исключение: Runtime –
RuntimeException- Ошибка времени выполненияПример использования¶# Страны с населением более 100 миллионов from axioma.core.sql import * # ... # table - Таблица 'world' # ... # создадим контекст context = SimpleTableContext(table) # SELECT query_text = "SELECT Страна FROM world WHERE Население>100000000" select_table = selectAsTable(query_text, context) result = select(query_text, context) print([feature.getAttribute("Страна") for feature in result.features]) # Вывод: # >>> ['Бангладеш', 'Бразилия', 'Китай', 'Индия', 'Индонезия', # 'Япония', 'Российская Федерация', 'Соединенные Штаты Америки']
axioma.core.sql.update(query_text, context, runtime)¶Запрос типа “Изменение” (UPDATE)
Параметры:
- query_text (
str) – текст запроса- context (
TableContext) – контекст таблиц- runtime (
SqlRuntime) – среда выполнения запросовРезультат: количество измененных записей
Тип результата: Исключение: Runtime –
RuntimeException- Ошибка времени выполнения
axioma.core.sql.update(query_text, context)Запрос типа “Изменение” (UPDATE)
Параметры:
- query_text (
str) – текст запроса- context (
TableContext) – контекст таблиц- runtime (
SqlRuntime) – среда выполнения запросовРезультат: количество измененных записей
Тип результата: Исключение: Runtime –
RuntimeException- Ошибка времени выполненияПример использования¶# Демонстрация исключения 'Неизвестная колонка' from axioma.core.sql import * from axioma.common import RuntimeException # ... # context - Контекст таблиц, содержащий таблицу 'world' # ... try: query_text = 'UPDATE world SET {0}=\"{2}\" WHERE {0}=\"{1}\"'.format("a", "b", "c") res = update(query_text, context) except RuntimeException as ex: print("Ошибка: %s" % ex) # Вывод: # >>> Ошибка: Столбец 'a' не найден
axioma.core.sql.remove(query_text, context, runtime)¶Запрос типа “Удаление” (DELETE)
Параметры:
- query_text (
str) – текст запроса- context (
TableContext) – контекст таблиц- runtime (
SqlRuntime) – среда выполнения запросовРезультат: количество удаленных записей
Тип результата: Исключение: Runtime –
RuntimeException- Ошибка времени выполнения
axioma.core.sql.remove(query_text, context)Запрос типа “Удаление” (DELETE)
Параметры:
- query_text (
str) – текст запроса- context (
TableContext) – контекст таблиц- runtime (
SqlRuntime) – среда выполнения запросовРезультат: количество удаленных записей
Тип результата: Исключение: Runtime –
RuntimeException- Ошибка времени выполнения