Отображение фTab файла в каталоге данных

Ошибки при работе с ГИС Аксиома
Ответить
Аватара пользователя
Alex_Y
Сообщения: 33
Зарегистрирован: 26 янв 2021, 06:40

Отображение фTab файла в каталоге данных

Сообщение Alex_Y » 11 апр 2022, 05:51

Здравствуйте.

Делаю стандартный скрипт создания файла из документации

Код: Выделить всё

from axipy.da import *

definition = {
    'src': r'd:\table.tab',
    'schema': attr.schema(
        attr.string('field1'),
        attr.integer('field2'),
    ),
}
table = provider_manager.create(definition)
Файл создается, все хорошо. Но, в каталоге открытых данных он показывается вот так:
C:/Users/Алексей/AppData/Local/Temp/2d95b83fb3a94ba081b999b210f6e606
Такое наблюдается при первом запуске скрипта.

А еще, выполняю от крытие этогло файла:

Код: Выделить всё

provider_manager.openfile(r'd:\table.tab')
Файл не появляется в каталоге открытых данных.
Аватара пользователя
Alex_Y
Сообщения: 33
Зарегистрирован: 26 янв 2021, 06:40

Re: Отображение фTab файла в каталоге данных

Сообщение Alex_Y » 11 апр 2022, 07:01

Дело не в первом запуске, а в том, что файл отсуствует.

Код: Выделить всё

import os
from axipy.da import *

f_tab = r'd:\table.tab'
os.remove(f_tab)

for i in range(3):
    tab = provider_manager.createfile(f_tab, attr.schema(attr.integer('field2')))   
    print(i, tab.name)
    tab.close()
    if i == 1:
        os.remove(f_tab)
Результат:
0 C:/Users/Алексей/AppData/Local/Temp/8aabab0221d8443ab80f04417473ea33
1 d:\table.tab
2 C:/Users/Алексей/AppData/Local/Temp/b23fe69754fa4d9cb3666ebba0cb6318
Значение tab.name устанавливается некорректно или вообще не устанавливается.
Аватара пользователя
Дмитрий
Сообщения: 56
Зарегистрирован: 04 июн 2019, 08:33

Re: Отображение фTab файла в каталоге данных

Сообщение Дмитрий » 11 апр 2022, 09:05

Здравствуйте.

1.
По поводу имени. Его можно задать после создания объекта. То, что не берется из имени создаваемого файла, если тот не существует, исправим. Спасибо.

definition = {
'src': r'd:\table.tab',
'schema': attr.schema(
attr.string('field1'),
attr.integer('field2'),
),
}
table = provider_manager.create(definition)
table.name = 'new_name'

2.
Как я понимаю, не открывается только что созданный? Нам не удалось повторить.

3.
Да, это следствие п.1. И при закрытии таблицы она не закрывается моментально, а проводит некоторые операции по зачистке занимаемых ресурсов. Отсюда и разночтение по выводу.
Ответить