Моя конфигурация:Ошибка преобразования вариант в двойной [Delphi XE + IBObjects 4.9.12]
Delphi XE
Firebird 2.1
IBObjects 4.9.12
Windows 7, 64бит
я получаю исключение когда Я пытаюсь установить значение для параметра IBOQuery («Не удалось преобразовать вариант типа (UnicodeString) в тип (Double)»).
Исключением является процедура TIB_Column.SetAsVariant в IB_Components.pas (строка 42795). Для того, чтобы создать эту ситуацию, просто пытаюсь передать строку в качестве параметра даты:
myQuery.paramByName('mydate').AsString := DateToStr(IncDay(Now,5));
В течение последних 25 дней я пытаюсь решить эту ситуацию, но в списке поддержки IBO У меня нет никаких ответов.
У кого-то есть идея?
Каким ваше поле даты в базе данных? Предположим, например, что это Delphi TDateTime, тогда преобразование в строку неверно. Вы должны просто использовать что-то вроде: 'myQuery.paramByName ('mydate'). AsDateTime: = IncDay (Now, 5);' Правильный ответ будет зависеть от типа данных, используемых в поле базы данных. –
+1 для IncDay. Radu – RBA
Это сообщение, поднятое VarCastError из блока Variants при попытке плохого преобразования; Попробуйте создать приложение с помощью «Использовать Debug DCU», и вы увидите, что он поднят из Variants.pas; Мое предположение: если IBObjects имеет способ присвоить параметру «тип данных», ваш параметр определяется как DATE (TDateTime = Double в Delphi, а Double - своего рода Float). Показывает нам код в IB_Components.pas по указанному номеру строки; –