axioma.core.dp.
TransactionalTable
¶Абстрактный класс, представляющий транзакционную таблицу. Из редактируемой таблицы EditableTable
можно получить транзакционную, используя функцию wrap()
Унаследован от:
Методы:
insert
(cursor, description=str())¶Вставить записи в таблицу
Параметры:
insert
(feature_list, description=str())Вставить записи в таблицу
Параметры:
remove
(cursor, description=str())¶Удалить записи из таблицы
Параметры:
remove
(feature_list, description=str())Удалить записи из таблицы
Параметры:
update
(cursor, description=str())¶Обновить записи в таблице
Параметры:
update
(feature_list, description=str())Обновить записи в таблице
Параметры:
commit
()¶Внести все изменения в таблицу
restore
()¶Отменить все изменения таблицы
axioma.core.dp.
wrap
(edit_table)¶Обернуть редактируемую таблицу в транзакционную. Файл транзакции
будет создан, если это возможно, в директории с данными редактируемой таблицы,
иначе будет создан временный файл
.
Параметры: | edit_table (EditableTable ) – редактируемая таблица |
---|
axioma.core.dp.
wrap
(edit_table, file_path)Обернуть редактируемую таблицу в транзакционную
Параметры: |
|
---|
Пример использования:
# Открываем таблицу table = open_file('world.tab') if table is not None: # Формируем данные для последующей вставки index_geometry = table.tableSchema().indexOf('object') index_style = table.tableSchema().indexOf('tr$$_rendition') new_feature = Feature.createFeature(table.tableSchema()) poly = QPolygonF(); v = 1000000 poly << QPointF(-v, -v) << QPointF(-v, v) << QPointF(v, v) << QPointF(v, -v) << QPointF(-v, -v) polygon = Polygon(table.coordSystem(), poly) new_feature.setAttribute(index_geometry, polygon) new_feature.setModified(index_geometry, True) style = MapBasicStyle().styleFromString('Pen (1,2,0) Brush (2, 65280, 16777215)') new_feature.setAttribute(index_style, style) new_feature.setModified(index_style, True) # Можно произвести дополнительную проверку, создана ли для данной таблицы обертка. if isinstance(table, TransactionalTable): # Если да, то сразу можно производить изменения table.insert([new_feature]) table.commit() else: # Если нет, то создаем ее посредством wrap ttable = wrap(table) # Вставляем новую запись ttable.insert([new_feature]) # Сохраняем изменения ttable.commit()