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?

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top