Страница 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'