Преобразование ошибки вариант в двойной [Delphi XE + iBobjects 4.9.12

StackOverflow https://stackoverflow.com/questions/4781491

Вопрос

Моя конфигурация:

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)

С наилучшими пожеланиями,
Раду

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top