Table - Таблица¶
-
class
axipy.da.
Table
¶ Базовые классы:
axipy.da.DataObject
Таблица.
Менеджер контекста сохраняет изменения и закрывает таблицу.
Пример:
with provider_manager.openfile('path/to/file.tab') as table: ... # При выходе из блока таблица будет сохранена и закрыта
См.также
-
commit
()¶ Сохраняет изменения в таблице.
Если таблица не содержит несохраненные изменения, то команда игнорируется.
- Исключение
RuntimeError – Невозможно сохранить изменения.
-
count
(bbox=None)¶ Возвращает количество записей, удовлетворяющих параметрам.
Данный метод является наиболее предпочтительным для оценки количества записей. При этом используется наиболее оптимальный вариант выполнения запроса для каждого конкретного провайдера данных.
-
property
data_changed
¶ Сигнал об изменении данных таблицы. Испускается когда были изменены данные таблицы.
table = provider_manager.openfile(filepath) table.data_changed.connect(lambda : print('Таблица была изменена.'))
- Тип результата
Signal
-
insert
(features)¶ Вставляет записи в таблицу.
-
items
(bbox=None, ids=None)¶ Запрашивает записи, удовлетворяющие параметрам. В качестве фильтра может быть указан либо ограничивающий прямоугольник, либо перечень идентификаторов в виде списка.
-
itemsByIds
(ids)¶ Запрашивает записи по списку
list
с идентификаторами записей, либо перечень идентификаторов в виде списка. Идентификаторы несохраненных записей имеют отрицательные значения.- Параметры
- Тип результата
- Результат
Итератор по записям.
table_world = provider_manager.openfile(filepath) items = table_world.itemsByIds([11,27,41,163,203]) for f in items: print('Feature id={}. Страна={}'.format(f.id, f['Страна'])) # Просмотр идентификаторов всех записей, включая несохраненные for f in table_world.items(): print( f.id, f['Страна'] )
-
itemsInObject
(obj)¶ Запрашивает записи с фильтром по геометрическому объекту.
- Параметры
obj (
Geometry
) – Геометрия. Если для нее не задана СК, используется СК таблицы.- Тип результата
- Результат
Итератор по записям.
table_world = provider_manager.openfile(filepath) v = 2000000 polygon = Polygon((-v, -v), (-v, v), (v, v), (v, -v)) items = table_world.itemsInObject(polygon) for f in items: print('Feature id={}. Страна={}'.format(f.id, f['Страна']))
-
itemsInRect
(bbox)¶ Запрашивает записи с фильтром по ограничивающему прямоугольнику.
- Параметры
bbox (
Union
[Rect
,QRectF
,tuple
]) – Ограничивающий прямоугольник.- Тип результата
- Результат
Итератор по записям.
table_world = provider_manager.openfile(filepath) v = 2000000 items = table_world.itemsInRect(Rect(-v, -v, v, v)) for f in items: print('Feature id={}. Страна={}'.format(f.id, f['Страна']))
-
redo
()¶ Производит откат на один шаг вперед. При этом возвращается состояние до последней отмены.
-
remove
(ids)¶ Удаляет записи из таблицы.
-
restore
()¶ Отменяет несохраненные изменения в таблице.
Если таблица не содержит несохраненные изменения, то команда игнорируется.
-
property
schema_changed
¶ Сигнал об изменении схемы таблицы. Испускается когда была изменена структура таблицы.
- Тип результата
Signal
-
property
supported_operations
¶ Доступные операции.
flags = table.supported_operations assert flags == SupportedOperations.ReadWrite assert flags & SupportedOperations.Insert assert SupportedOperations.Write in flags
- Тип результата
-
undo
()¶ Производит откат на один шаг назад.
-
update
(features)¶ Обновляет записи в таблице.
При обновлении проверяется
Feature.id
. Если запись с таким идентификатором не найдена, то она пропускается.modified_feature = Feature({'attr_name': 'new_value'}, id=1) table.update(modified_feature) table.commit()
См.также
-