QueryTable - Таблица SQL запроса

class axioma.core.sql.QueryTable

Таблица SQL запроса. Доступно чтение, изменение и удаление объектов из Запроса.

Унаследован от:

Методы:

features()

Получить список записей таблицы

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

list [Feature]

hasId(id)

Проверить, содержит ли таблица запись с указанным идентификатором

Параметры

id (QVariant) – идентификатор записи

Результат

True если содержит

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

bool

mainTable()

Получить главную таблицу

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

Table

query()

Получить запрос, на основе которого построена таблица

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

DialectQuery

update(cursor, description=str())

Обновить записи в таблице

Параметры
  • cursor (Cursor) – итератор по записям

  • description (str) – описание операции

update(feature_list, description=str())

Обновить записи в таблице

Параметры
  • feature_list (list [Feature]) – список записей

  • description (str) – описание операции

import axioma.app

# Функция изменения значения ячейки в колонке "Страна" на значение "Новое"
def modify(feature):
        feature.setAttribute('Страна', 'Новое')
        feature.setModified('Страна', True)
        return feature

# Пусть открыта таблица, в которой есть колонка "Страна",
# И создан sql-запрос "Запрос" к этой таблице, в который вошла эта колонка.

# Получаем каталог открытых данных
catalog = axioma.app.mainWindow.dataCatalog()
# Находим sql-запрос с названием "Запрос"
for table in catalog.allDataObjects():
        if table.name() == 'Запрос':
                # Получаем первую и третью ячейки в колонке "Страна"
                someFeatures = table.selectFeaturesById([0, 2], ['Страна'])
                # Получем ячейки с теми же индексами, но измененными значениями
                modifiedFeatures = list(map(modify, someFeatures))
                # Обновляем записи в соответствующих ячейках
                table.update(modifiedFeatures)

# Теперь в sql-запросе "Запрос" значения в первой и третьей ячейках в колонке
# "Страна" изменены на значение "Новое".