FeatureExpressionEvaluator

class axioma.core.sql.FeatureExpressionEvaluator

Выполнение sql выражений для таблицы или запроса

FeatureExpressionEvaluator(runtime, schema)

Конструктор

Параметры:
  • runtime (SqlRuntime) – Среда выполнения sql предложений
  • schema (TableSchema) – Схема по которой будет выполнено sql предложение
setExpression(expression)

Задание поля таблицы или выражения для выполнения

Параметры:expression (str) – Выражение
Результат:True, если выражение корректно. В противном случае False. Сообщение об ошибке можно посмотреть методом errorString
Тип результата:bool
usedColumns()

Список используемых колонок из схемы

Результат:Список
Тип результата:list [ str ]
expressionString()

Заданное выражение

Результат:Выражение или None если не задавалось или было задано неверно
Тип результата:str
errorString()

Строка с сообщением об ошибке если при задании выражения посредством setExpression была попытка установки некорректного выражения

Результат:Строка с ошибкой
Тип результата:str
hasError()

Имеются ли ошибки при задании выражения

Результат:True, если да. В противном случае False
Тип результата:bool
evaluate(feature)

Непосредственно выполнение выражения для записи таблицы

Параметры:feature (Feature) – Запись таблицы
Результат:Результат выполнения
Тип результата:QVariant

Пример использования:

# Создание переменной для обеспечения возможности вычисления выражений
runtime = SqlRuntime()

# Создание выражения по полю
evaluator = FeatureExpressionEvaluator(runtime, layer.tableSchema())
if not evaluator.setExpression("Население"):
                print(evaluator.errorString())
else:
                res = evaluator.evaluate(feature)