Преобразование ошибки вариант в двойной [Delphi XE + iBobjects 4.9.12
-
23-10-2019 - |
Вопрос
Моя конфигурация:
Delphi XE
Firebird 2.1
Ibobjects 4.9.12
Windows 7 64Bits
Я получаю исключение, когда пытаюсь установить значение параметру iboquery («не удалось преобразовать вариант типа (Unicodestring) в тип (двойной)»).
Исключение поднимается из процедуры tib_column.setasvariant в ib_components.pas (строка 42795). Чтобы создать эту ситуацию, просто попробуйте передать строку в параметр даты:
myQuery.paramByName('mydate').AsString := DateToStr(IncDay(Now,5));
В течение последних 25 дней я пытаюсь решить эту ситуацию, но в списке поддержки IBO у меня нет ответов.
У кого -то есть идея?
Решение
Архитектура ibobjects преобразует (в момент выполнения) все параметры, поля и т. Д. в строку или варианты. Если ваш параметр «MyDate» является типом DateTime (NUMERIC), то вы должны заполнить его значением типа корреклента. Не логика для заполнения параметра типа «цифрового» строкой ...
попробуй это
myquery.parambyname ('mydate'). AsdateTime: = сейчас+5; // такой же, как ответ Дэвида.
или же
myquery.parambyname ('mydate'). Asfloat: = сейчас+5; // или Incday (теперь, 5)
С наилучшими пожеланиями,
Раду