Страница 1 из 1

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

Добавлено: Вт 07 сен 2021 15:37
Ilya.Kazankov
В исходном коде компонентов
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 в этом списке нет

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

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