Error de conversión de la variante en Double [Delphi XE + IBObjects 4.9.12
-
23-10-2019 - |
Pregunta
Mi configuración:
Delphi xe
Firebird 2.1
Ibobjects 4.9.12
Windows 7 64bits
Obtengo una excepción cuando intento establecer un valor en un parámetro IBOQUERY ("No se pudo convertir la variante de tipo (unicodegurt) en tipo (doble)").
La excepción se plantea del procedimiento tib_column.setAsVariant en ib_components.pas (línea 42795). Para crear esta situación, solo intente pasar una cadena a un parámetro de fecha:
myQuery.paramByName('mydate').AsString := DateToStr(IncDay(Now,5));
Durante los últimos 25 días estoy tratando de resolver esta situación, pero en la lista de soporte de IBO no tengo respuestas.
¿Alguien tiene una idea?
Solución
La arquitectura de Ibobjects está convirtiendo (en un momento de ejecución) todos los parámetros, campos, etc. a cadena o variantes. Si su parámetro 'MyDate' es el tipo de 'DateTime' (numérico), debe llenarlo con un valor de tipo de corresponsal. No es lógica para llenar un parámetro de tipo 'numérico' con una cadena ...
prueba esto
myQuery.ParambyName ('myDate'). AsDatetime: = ahora+5; // es lo mismo que la respuesta de David.
o
myQuery.parambyName ('myDate'). asfloat: = ahora+5; // o Incay (ahora, 5)
Saludos,
Radu