Модуль источников данных sql

В данном модуле содержатся классы и методы для выполнения локальных sql запросов

Список классов

Функции выполнения SQL запросов

Примечание

При вызове версий функций, не имеющих среду выполнения запросов SqlRuntime в качестве одного из своих параметров, будет произведена попытка ее получения из инициализированного ядра приложения Core

axioma.core.sql.selectAsTable(query_text, context, runtime)

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

Параметры:
  • query_text (str) – текст запроса
  • context (TableContext) – контекст таблиц
  • runtime (SqlRuntime) – среда выполнения запросов
Результат:

таблица, представляющая результат запроса

Тип результата:

QueryTable

Исключение:

RuntimeRuntimeException - Ошибка времени выполнения

axioma.core.sql.selectAsTable(query_text, context)

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

Параметры:
  • query_text (str) – текст запроса
  • context (TableContext) – контекст таблиц
Результат:

таблица, представляющая результат запроса

Тип результата:

QueryTable

Исключение:

RuntimeRuntimeException - Ошибка времени выполнения

Пример использования
# Запрос всех стран с названием '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) – среда выполнения запросов
Результат:

результат выполнения запроса

Тип результата:

QueryResult

Исключение:

RuntimeRuntimeException - Ошибка времени выполнения

axioma.core.sql.select(query_text, context)

Запрос типа “Выборка” (SELECT)

Параметры:
  • query_text (str) – текст запроса
  • context (TableContext) – контекст таблиц
Результат:

результат выполнения запроса

Тип результата:

QueryResult

Исключение:

RuntimeRuntimeException - Ошибка времени выполнения

Пример использования
# Страны с населением более 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) – среда выполнения запросов
Результат:

количество измененных записей

Тип результата:

int

Исключение:

RuntimeRuntimeException - Ошибка времени выполнения

axioma.core.sql.update(query_text, context)

Запрос типа “Изменение” (UPDATE)

Параметры:
  • query_text (str) – текст запроса
  • context (TableContext) – контекст таблиц
  • runtime (SqlRuntime) – среда выполнения запросов
Результат:

количество измененных записей

Тип результата:

int

Исключение:

RuntimeRuntimeException - Ошибка времени выполнения

Пример использования
# Демонстрация исключения 'Неизвестная колонка'
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) – среда выполнения запросов
Результат:

количество удаленных записей

Тип результата:

int

Исключение:

RuntimeRuntimeException - Ошибка времени выполнения

axioma.core.sql.remove(query_text, context)

Запрос типа “Удаление” (DELETE)

Параметры:
  • query_text (str) – текст запроса
  • context (TableContext) – контекст таблиц
  • runtime (SqlRuntime) – среда выполнения запросов
Результат:

количество удаленных записей

Тип результата:

int

Исключение:

RuntimeRuntimeException - Ошибка времени выполнения