В исходном коде компонентов
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 в этом списке нет
Ошибка This type cannot consist in table
-
- Сообщения: 1
- Зарегистрирован: Вт 07 сен 2021 15:32
Re: Ошибка This type cannot consist in table
Спасибо за Вашу информацию, мы воспроизвели и исправили описанную Вами ошибку. Исправление доступно в версии ODAC 12.0.1 (13-Sep-21)