Table - Абстрактный класс таблицы¶
-
class
axioma.core.dp.
Table
¶ Абстрактный класс таблицы
Унаследован от:
От него наследуются:
-
-
Table
()¶ Конструктор класса
-
allFeatures
()¶ Запрашиваются все записи таблицы. При выполнении данного запроса все записи загружаются в память. Если необходимо использовать более гибкий механизм с последовательной частичной загрузкой рекомендуется использовать
selectToFeatureList()
Пример последовательного анализа всех записей таблицы:¶features = table.allFeatures() for f in features: print("id", f.id(), f.getAttribute('Страна'))
-
contentType
()¶ Тип контента. Используется при первоначальной организации слоев внутри карты. Например, слой с точечными объектами должен располагаться выше слоя с полигональными, а растровый слой размещается снизу по списку.
- Тип результата
-
contentTypes
()¶ Перечень типов объектов, которые реально содержится в таблице.
- Тип результата
list
[ContentType
]
-
coordSystem
()¶ Координатная система таблицы. Если несколько, берется первая попавшаяся
- Результат
координатная система таблицы, либо None
- Тип результата
-
dataReset
()¶ [signal] Изменились данные таблицы
-
featureIdComparator
()¶ Получение функтора сравнения двух идентификаторов записей в этой таблице. Используется для сортировки записей.
- Результат
функтор сравнения двух идентификаторов
- Тип результата
-
hasDataChangeConnection
()¶ Имеет ли кто-то подписку на сигнал изменения данных
- Результат
True, если имеет, иначе - False
- Тип результата
-
saveSchemaToJson
()¶ Сохранение схемы таблицы в формате JSON-представления. Пример см.
modifyTableSchema()
- Тип результата
list
[QJsonValue
]
Пример получения параметров схемы таблицы:¶table = axioma.core.open_json({'src': '/tmp/world.tab'}) json = table.saveSchemaToJson() for field in json: def_feild = field.toObject() print('-----------------') for key in def_feild.keys(): v = def_feild[key] print('ParameterName={}, Value={}'.format(key, def_feild[key].toVariant()))
-
schemaChanged
()¶ [signal] Изменилась схема таблицы
-
selectFeaturesById
(ids, attribute_names=list(), range=PageRange())¶ Получить записи по списку идентификаторов
- Параметры
- Результат
Список записей
- Тип результата
Пример использования:¶# Восстановление; получение записей с полным количеством атрибутов # ... # features - записи с усеченным набором атрибутов # ... ids = [feature.id() for feature in features] full_features = table.selectFeaturesById(ids, table.attributeNames())
-
selectFeaturesInMbr
(rect, attribute_names=list(), geom_attr_name=str(), range=PageRange())¶ Получить записи в прямоугольнике. Сравнение производится с ограничивающим прямоугольником объекта. Для более точного соответствия необходимо произвести дополнительную проверку.
- Параметры
rect (
GeoRect
) – географический прямоугольник, в границах которого выбираются объекты (записи)attribute_names (
list
[str
]) – имена запрашиваемых атрибутов записейgeom_attr_name (
str
) – имя атрибута с геометрией; если пустая строка, будет выполнена попытка найти атрибут; если несколько - берется первый попавшийся, если нет - возвращается пустой список записейrange (
PageRange
) – диапазон записей
- Результат
Список записей
- Тип результата
Пример использования:¶# ... # coord_system - Долгота-Широта # ... georect = GeoRect(QRectF(-180, 0, 90, 90), coord_system) features = table.selectFeaturesInMbr(georect, table.attributeNames())
-
selectToFeatureList
(query, range=PageRange())¶ Запрашиваются записи, удовлетворяющие запросу query
- Параметры
query (
TableQuery
) – запрос к таблицеrange (
PageRange
) – диапазон записей. Может использоваться как ограничитель записей при загрузке порциями (см. пример)
- Результат
Список записей
- Тип результата
Пример использования:¶# Запросим последовательно порциями по 10 записей count = table.count(QuerySelectAll()) print('Общее количество записей =', count) part_count = 10 start_record = 0 while start_record < count: print('--- Запрашиваем от {} до {}'.format(start_record+1, start_record+part_count)) features = table.selectToFeatureList(QuerySelectAll(table.tableSchema().attributeNames()), PageRange(start_record, part_count)) start_record = start_record + part_count for f in features: print('ID =', f.id())
-
sourceOfChanges
()¶ Определяет таблицу, данные из которой являются источником изменений в текущей таблице
- Тип результата
-
tableSchema
()¶ Схема таблицы
- Тип результата
-