Ver Mensaje Individual
  #1  
Antiguo 13-06-2011
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Reputación: 21
gluglu Va por buen camino
Error en Coalesce de un Parámetro tipo Int64

Hola a tod@s !

Tengo un campo en una tabla del tipo Decimal(12,0), es decir, puede almacenar valores del tipo Int64.

Por otro lado, tengo un TIBDataSet enlazado con dicha tabla mediante ese campo clave del tipo Int64.

Cómo puedo hacer para preguntar en el IBDataSet si el parámetro clave es null o no ?

He intentado poner :
Código SQL [-]
Select Campo1 from Tabla1
where :Clave is Null
pero en este caso el error que me dá es 'Data Type Unknown' ya que al parecer no comprende de que tipo es el campo Clave.

Lo que se me ocurrió entonces es enlazarlo de esta manera :
Código SQL [-]
Select Campo1 from Tabla1
where Coalesce(:Clave, 0) = 0
y funcionaba perfectamente hasta que en el campo Clave aparezca un valor Int64 de 12 posiciones (p.ej. 123456789012).

El error que me aparece ahora es (en tiempo de ejecución) : 'arithmetic exception, numeric overflow or string truncation'.

Tengo ya perfectamente comprobado que se deben a los valores grandes de 'Clave', ya que con cualquier otro valor funciona correctamente, hasta que introduzco un Int64 y entonces al parecer el Coalesce(:Clave, 0) me lanza el error indicado.

Gracias por vuestra ayuda.
__________________
Piensa siempre en positivo !
Responder Con Cita