Ошибка This type cannot consist in table

Обсуждение возникших проблем, предложений и ошибок ODAC компонентов
Закрыто
Ilya.Kazankov
Сообщения: 1
Зарегистрирован: Вт 07 сен 2021 15:32

Ошибка This type cannot consist in table

Сообщение Ilya.Kazankov » Вт 07 сен 2021 15:37

В исходном коде компонентов
procedure TOraParam.SetItemAsInteger(Index: integer; Value: integer);
begin
DataType := ftLargeint; // тип данных!!! в ODAC 10 был ftInteger
ItemValue[Index] := Value;
end;

TOraParam.Assign(Source: TPersistent)
если параметр TOraParam(Source).Table = True
возникает ошибка 'This type cannot consist in table'
т.к. выполняется проверка
if not(Integer(DataType) in [Integer(ftUnknown),
Integer(ftString), Integer(ftFixedChar),
Integer(ftWideString), Integer(ftFixedWideChar),
Integer(ftInteger), Integer(ftFloat), // в проверке нет ftLargeint!!!!, если сюда добавить новый тип данных, то ошибки не будет
Integer(ftDateTime), Integer(ftBoolean)])
then
RaiseError(SInvalidTableType);


Если есть TOraQuery с параметром типа Table, то при заполнении его автоматически меняется тип данных. Далее если выполнить Assign такого объекта в другой, то получим ошибку, т.к. при назначении параметров есть проверка на допустимый тип и ftLargeint в этом списке нет

MaximG
Devart Team
Сообщения: 114
Зарегистрирован: Пн 06 июл 2015 12:51

Re: Ошибка This type cannot consist in table

Сообщение MaximG » Пт 01 окт 2021 08:35

Спасибо за Вашу информацию, мы воспроизвели и исправили описанную Вами ошибку. Исправление доступно в версии ODAC 12.0.1 (13-Sep-21)

Закрыто