Data type mapping

Обсуждение возникших проблем, предложений и ошибок UniDAC компонентов
Ответить
Akella
Сообщения: 200
Зарегистрирован: Пн 02 апр 2012 14:41

Data type mapping

Сообщение Akella » Вт 16 мар 2021 14:34

В новой версии uniDAC (8.4.1) теперь ошибка, если в базе (firebird) поле smallint, но оно считается, как boolean.
И посыпалось куча ошибок. И теперь много переделывать.
Могли бы оставить обратную совместимость :(
Можно было бы в колонку Database type (http://prntscr.com/10n9dvh ) добавить не только типы, но и название доменов.
Например, если домен содержит в имени "boolean", то это автоматически приравнивается к boolean даже если поле типа smallint.

И еще неудобство. В выпадающих списка нет контекстного поиска и сортировки. Полей в таблице много и пока найдешь нужное, то в глазах уже, извините, рябит.

Старая версия uniDAC насоздавала persistent-полей типа TBooleanField. А новая версия теперь ругается и выдает ошибки о несовместимости типов то в том месте программы, то в этом.

oleg0k
Devart Team
Сообщения: 21
Зарегистрирован: Вт 10 мар 2020 17:46

Re: Data type mapping

Сообщение oleg0k » Вт 16 мар 2021 15:40

Здравствуйте,
Да, в новой версии UniDAC 8.4.1 изменилось значение по умолчанию для свойство TUniQuery.SpecificOptions.Values['InterBase.BooleanDomainFields']. Теперь но равно False. Это изменение было внесено для увеличение производительности UniDAC и чтобы поведение у UniDAC совпадало с IBDAC. Более подробно об этом свойстве и его значении по умолчанию вы можете узнать в хелпе UniDAC: https://www.devart.com/unidac/docs/usin ... storedproc Для того чтобы вернуть старое поведение, пожалуйста, установите данное свойство в True.

wbr, Oleg
Devart Team

Akella
Сообщения: 200
Зарегистрирован: Пн 02 апр 2012 14:41

Re: Data type mapping

Сообщение Akella » Вт 16 мар 2021 18:05

Спасибо.
Буду знать.

Но... Если вопрос касается производительности, то тогда другое дело.
Тогда вопрос вдогонку. Может у вас какая-то статистика, информация или рекомендации?
Может мне действительно переделать persistent-поля в smallint? Просто стоит ли на это тратить время? Как понять, как определить?
Например, почувствую ли я разницу на таблице в 1000 записей, в 100 тыс или только если записей будет более миллиона?

oleg0k
Devart Team
Сообщения: 21
Зарегистрирован: Вт 10 мар 2020 17:46

Re: Data type mapping

Сообщение oleg0k » Пт 19 мар 2021 09:29

Здравствуйте,
Для того, чтобы не менять поведение UniDAC мы вернули значение по умолчанию для свойства TUniQuery.SpecificOptions.Values['InterBase.BooleanDomainFields']. Теперь оно снова будет равно True. Данное изменение войдет в следующий билд UniDAC который мы планируем выпустить на следующей неделе.
По последнему вопросу - мы не можем давать рекомендаций касаемо архитектуры приложения. Вы можете самостоятельно замерить производительность с использованием обоих вариантов.

wbr, Oleg
Devart Team

Ответить