В новой версии uniDAC (8.4.1) теперь ошибка, если в базе (firebird) поле smallint, но оно считается, как boolean.
И посыпалось куча ошибок. И теперь много переделывать.
Могли бы оставить обратную совместимость :(
Можно было бы в колонку Database type (http://prntscr.com/10n9dvh ) добавить не только типы, но и название доменов.
Например, если домен содержит в имени "boolean", то это автоматически приравнивается к boolean даже если поле типа smallint.
И еще неудобство. В выпадающих списка нет контекстного поиска и сортировки. Полей в таблице много и пока найдешь нужное, то в глазах уже, извините, рябит.
Старая версия uniDAC насоздавала persistent-полей типа TBooleanField. А новая версия теперь ругается и выдает ошибки о несовместимости типов то в том месте программы, то в этом.
Data type mapping
Re: Data type mapping
Здравствуйте,
Да, в новой версии 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
Да, в новой версии 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
Re: Data type mapping
Спасибо.
Буду знать.
Но... Если вопрос касается производительности, то тогда другое дело.
Тогда вопрос вдогонку. Может у вас какая-то статистика, информация или рекомендации?
Может мне действительно переделать persistent-поля в smallint? Просто стоит ли на это тратить время? Как понять, как определить?
Например, почувствую ли я разницу на таблице в 1000 записей, в 100 тыс или только если записей будет более миллиона?
Буду знать.
Но... Если вопрос касается производительности, то тогда другое дело.
Тогда вопрос вдогонку. Может у вас какая-то статистика, информация или рекомендации?
Может мне действительно переделать persistent-поля в smallint? Просто стоит ли на это тратить время? Как понять, как определить?
Например, почувствую ли я разницу на таблице в 1000 записей, в 100 тыс или только если записей будет более миллиона?
Re: Data type mapping
Здравствуйте,
Для того, чтобы не менять поведение UniDAC мы вернули значение по умолчанию для свойства TUniQuery.SpecificOptions.Values['InterBase.BooleanDomainFields']. Теперь оно снова будет равно True. Данное изменение войдет в следующий билд UniDAC который мы планируем выпустить на следующей неделе.
По последнему вопросу - мы не можем давать рекомендаций касаемо архитектуры приложения. Вы можете самостоятельно замерить производительность с использованием обоих вариантов.
wbr, Oleg
Devart Team
Для того, чтобы не менять поведение UniDAC мы вернули значение по умолчанию для свойства TUniQuery.SpecificOptions.Values['InterBase.BooleanDomainFields']. Теперь оно снова будет равно True. Данное изменение войдет в следующий билд UniDAC который мы планируем выпустить на следующей неделе.
По последнему вопросу - мы не можем давать рекомендаций касаемо архитектуры приложения. Вы можете самостоятельно замерить производительность с использованием обоих вариантов.
wbr, Oleg
Devart Team