FeatureExpressionEvaluator =========================== .. currentmodule:: axioma.core.sql .. class:: FeatureExpressionEvaluator Выполнение sql выражений для таблицы или запроса .. py:method:: FeatureExpressionEvaluator(runtime, schema) Конструктор :param runtime: Среда выполнения sql предложений :type runtime: :class:`~axioma.core.sql.SqlRuntime` :param schema: Схема по которой будет выполнено sql предложение :type schema: :class:`~axioma.core.dp.TableSchema` .. py:method:: setExpression(expression) Задание поля таблицы или выражения для выполнения :param expression: Выражение :type expression: :class:`str` :return: True, если выражение корректно. В противном случае False. Сообщение об ошибке можно посмотреть методом errorString :rtype: :class:`bool` .. py:method:: usedColumns() Список используемых колонок из схемы :return: Список :rtype: :class:`list` [ :class:`str` ] .. py:method:: expressionString() Заданное выражение :return: Выражение или :any:`None` если не задавалось или было задано неверно :rtype: :class:`str` .. py:method:: errorString() Строка с сообщением об ошибке если при задании выражения посредством setExpression была попытка установки некорректного выражения :return: Строка с ошибкой :rtype: :class:`str` .. py:method:: hasError() Имеются ли ошибки при задании выражения :return: True, если да. В противном случае False :rtype: :class:`bool` .. py:method:: evaluate(feature) Непосредственно выполнение выражения для записи таблицы :param feature: Запись таблицы :type feature: :class:`~axioma.core.dp.Feature` :return: Результат выполнения :rtype: :class:`~PyQt5.QtCore.QVariant` Пример использования: .. code-block:: python # Создание переменной для обеспечения возможности вычисления выражений runtime = SqlRuntime() # Создание выражения по полю evaluator = FeatureExpressionEvaluator(runtime, layer.tableSchema()) if not evaluator.setExpression("Население"): print(evaluator.errorString()) else: res = evaluator.evaluate(feature)