TMSQuery.Options.DescribeParams и Integer Overflow

Обсуждение возникших проблем, предложений и ошибок SDAC компонентов
Ответить
saupg
Сообщения: 18
Зарегистрирован: Вт 06 май 2014 07:01

TMSQuery.Options.DescribeParams и Integer Overflow

Сообщение saupg » Пн 14 июл 2014 08:47

Здравствуйте!

В debug-сборке своего проекта я включаю опции "Runtime errors" компилятора (Overflow checking, Range checking).

Если в TMSQuery используется простейший SELECT-запрос без параметров (например, "select * from sys.objects"), и включено свойство Options.DescribeParams, то в модуле OLEDBAccess, в методе TOLEDBCommand.GetParameterInfo происходит "классическое" переполнение в вычислении границы цикла при использовании беззнакового типа:

Код: Выделить всё

var
  ...
  cParams: NativeUInt;
  ...
begin
  ...
  // cParams = 0, и вычитать из беззнакового числа ничего нельзя.
  for i := 0 to cParams - 1 do begin
  ...
end;
Исправьте, пожалуйста.

AndreyZ
Devart Team
Сообщения: 328
Зарегистрирован: Чт 08 сен 2011 13:18

Re: TMSQuery.Options.DescribeParams и Integer Overflow

Сообщение AndreyZ » Пн 14 июл 2014 09:55

Спасибо за информацию. Мы воспроизвели эту проблему. Мы будет исследовать это поведение и сообщим вам о результатах.

Ответить