Вставка в таблицу текущей даты

Вопросы связанные с работой ГИС Аксиома
Ответить
Аватара пользователя
bgnik
Сообщения: 53
Зарегистрирован: 25 окт 2021, 05:40

Вставка в таблицу текущей даты

Сообщение bgnik » 20 мар 2023, 08:22

Подскажите, пожалуйста, в чем ошибка.
В поле Дата_ типа Date таблицы MapInfo вставляю текущую дату:
import axipy
import datetime
import time

#создадим новую запись в слое Ochered
my_date_obj=datetime.date.today()
my_date_str=datetime.datetime.strftime(my_date_obj,'%d.%m.%Y')
new_feature=Feature({'Заказ_':Zakaz,
'Организация_':feature['Организация'],
'Дата_':time.strptime(my_date_str,'%d.%m.%Y')})
tabOchered.insert([new_feature])

Строковые поля вставляются нормально, а поле типа дата по умолчанию
принимает значение 01.01.2000 и не изменяется. Вручную дата вносится нормально.
Аватара пользователя
Александр
Сообщения: 464
Зарегистрирован: 18 апр 2019, 08:21

Re: Вставка в таблицу текущей даты

Сообщение Александр » 20 мар 2023, 12:57

Для даты и времени нужно использовать QDateTime, QDate, QTime
пример:

Code: Select all

import datetime
import os
from pathlib import Path

import axipy
from PySide2.QtCore import QDateTime, QDate, QTime

dir_path = Path(os.path.dirname(os.path.realpath(__file__)))
file_path = str(dir_path / 'temp.tab')

schema = axipy.Schema(
axipy.Attribute.integer('event_id'),
axipy.Attribute.date('event_date'),
axipy.Attribute.time('event_time'),
axipy.Attribute.datetime('event_datetime'),
)

table = axipy.provider_manager.createfile(file_path, schema)

now = datetime.datetime.now()
print(now)
feature = axipy.Feature(
event_id=1,
event_date=QDate(now.date()),
event_time=QTime(now.time()),
event_datetime=QDateTime(now),
)
table.insert(feature)
Аватара пользователя
bgnik
Сообщения: 53
Зарегистрирован: 25 окт 2021, 05:40

Re: Вставка в таблицу текущей даты

Сообщение bgnik » 21 мар 2023, 08:07

Спасибо, Александр! Теперь работает нормально.
Аватара пользователя
Александр
Сообщения: 464
Зарегистрирован: 18 апр 2019, 08:21

Re: Вставка в таблицу текущей даты

Сообщение Александр » 21 мар 2023, 14:24

В будущей версии переделаем, чтобы принимало как QT-шные дату/время, так и питоновские
Аватара пользователя
bgnik
Сообщения: 53
Зарегистрирован: 25 окт 2021, 05:40

Re: Вставка в таблицу текущей даты

Сообщение bgnik » 09 апр 2023, 05:27

Александр, а что нужно поместить в event_date из примера выше, чтобы ячейка отображалась как пустая?
Аватара пользователя
Александр
Сообщения: 464
Зарегистрирован: 18 апр 2019, 08:21

Re: Вставка в таблицу текущей даты

Сообщение Александр » 10 апр 2023, 12:47

Сейчас нет такой возможности.
Из интерфейса тоже нельзя ввести пустые значения (NULL) в поля ввода даты и времени.

Формат MapInfo поддерживает NULL-значения только для даты и времени, для чисел поддержки NULL - нет.

Аксиома в данный момент ограниченно поддерживает NULL-значения.
Значения показываются, но ввести NULL нельзя.

Сейчас мы активно делаем поддержку NULL-значений. Как для MapInfo, так и для других форматов.
К сожалению не всё так просто:
Для всех редакторов значений требуется добавить возможность вводить NULL.
Для строк отдельная проблема - пустые строки отличаются от NULL и вводить их нужно по разному.
Требуется изменить редактор схемы таблицы для поддержки NULL
и пр...
Ответить