Страница 13 из 15
Re: Плагины
Добавлено: 10 апр 2024, 10:53
Матвеич
Уважаемый Дмитрий !!! Благодарю Вас помощь, осталось крайнее усилие...
Детали в файле ...
Re: Плагины
Добавлено: 10 апр 2024, 15:00
Дмитрий
Текст Вашего плагина очень большой и ориентироваться сложно. Как вариант, у Вас два плагина в одном. Этого делать нельзя и нужно объединить. Должен остаться один.
Re: Плагины
Добавлено: 10 апр 2024, 15:36
Матвеич
Дмитрий доброго времени суток !
Благодарю Вас за подсказку , буду пробовать.
Re: Плагины
Добавлено: 16 апр 2024, 08:58
Матвеич
Форумчане доброго времени суток!
Дано: открытая ,средствами ГИС Аксиома , таблица земля с текстовыми объектами : 1,2,3,4
Необходимо: удалить все записи из таблицы земля и сохранить изменения.(очистить землю)
Мои действия :
----------------- фрагмент программы --------------------
# выбрать все записи в таблице земля
qry = axipy.data_manager.query('select * from земля')
# удалить выбранные записи
for f in qry.items():
print('>>>', f.id)
qry.remove(f.id)
- --------------------------------------------------------------------
печать идентификаторов записей
>>> 0;1;2;3
и удаляет только объекты 1;2. Таблица Запрос формируется правильно (выбраны все записи в таблице земля).
Запускаю еще раз "очистить землю" и все удаляется и мы добиваемся своей цели.
Вопрос : Каким образом одним махом удалить выбранные записи ?
Re: Плагины
Добавлено: 16 апр 2024, 13:46
Александр
Ниже приведен пример кода, который создает таблицу, вставляет несколько записей, сохраняет её и затем удаляет все записи.
Code: Select all
import axipy as axp
# создаём таблицу
schema = axp.Schema(
axp.Attribute.integer('Num'),
axp.Attribute.string('Name', 150)
)
table = provider_manager.tab.create_open('path/to/datadir/newtable.tab', schema)
# вставляем записи
table.insert(axp.Feature(Num = 1, Name = 'Объект 1'))
table.insert(axp.Feature(Num = 2, Name = 'Объект 2'))
table.insert(axp.Feature(Num = 3, Name = 'Объект 3'))
table.insert(axp.Feature(Num = 4, Name = 'Объект 4'))
# сохраняем таблицу
table.commit()
# получаем список всех идентификаторов
ids = []
for item in table.items():
ids.append(item.id)
# удаляем записи
table.remove(ids)
Если требуется удалить несохранённые данные, то можно воспользоваться
Table.rollback()
Re: Плагины
Добавлено: 16 апр 2024, 16:44
Матвеич
Александр Доброго времени суток !
Благодарю Вас ! Все получилось .
Ваши бы примеры да в руководство !
Если я правильно понял , то все операции с записями в таблице производим только через идентификаторы записей ?
Re: Плагины
Добавлено: 16 апр 2024, 17:30
Александр
Матвеич писал(а): ↑16 апр 2024, 16:44
Если я правильно понял , то все операции с записями в таблице производим только через идентификаторы записей ?
Да.
Re: Плагины
Добавлено: 17 апр 2024, 09:26
gisamap
Добрый день.
Удалить все записи можно проще
qry = axipy.data_manager.query_hide('DELETE FROM земля')
Матвеич писал(а): ↑16 апр 2024, 08:58
Форумчане доброго времени суток!
Дано: открытая ,средствами ГИС Аксиома , таблица земля с текстовыми объектами : 1,2,3,4
Необходимо: удалить все записи из таблицы земля и сохранить изменения.(очистить землю)
Мои действия :
----------------- фрагмент программы --------------------
# выбрать все записи в таблице земля
qry = axipy.data_manager.query('select * from земля')
# удалить выбранные записи
for f in qry.items():
print('>>>', f.id)
qry.remove(f.id)
- --------------------------------------------------------------------
печать идентификаторов записей
>>> 0;1;2;3
и удаляет только объекты 1;2. Таблица Запрос формируется правильно (выбраны все записи в таблице земля).
Запускаю еще раз "очистить землю" и все удаляется и мы добиваемся своей цели.
Вопрос : Каким образом одним махом удалить выбранные записи ?
Re: Плагины
Добавлено: 17 апр 2024, 10:45
Матвеич
доброго времени суток gimap !
Попробовал Ваш вариант : qry = axipy.data_manager.query_hide('DELETE FROM земля')
выдает ошибку : (вероятно что-то не подключено ?)
File "C:\Users\User\AppData\Roaming\ESTI\Axioma.GIS\v5\installed_modules\modules\MapTopik\__init__.py", line 365, in map_clear
qry = axipy.data_manager.query_hide('DELETE FROM земля')
AttributeError: 'DataManager' object has no attribute 'query_hide'
Re: Плагины
Добавлено: 17 апр 2024, 11:33
gisamap
Ошибся
query_hidden
qry = axipy.data_manager.query_hidden('DELETE FROM земля')
Матвеич писал(а): ↑17 апр 2024, 10:45
доброго времени суток gimap !
Попробовал Ваш вариант : qry = axipy.data_manager.query_hide('DELETE FROM земля')
выдает ошибку : (вероятно что-то не подключено ?)
File "C:\Users\User\AppData\Roaming\ESTI\Axioma.GIS\v5\installed_modules\modules\MapTopik\__init__.py", line 365, in map_clear
qry = axipy.data_manager.query_hide('DELETE FROM земля')
AttributeError: 'DataManager' object has no attribute 'query_hide'