Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #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
Poder: 21
gluglu Va por buen camino
No he probado lo que me indicas ...

Según tu comentario, si 'defino' directamente el campo en Tabla1 como BigInt en vez de Decimal(12,0), no me va a dar el error al pasarlo como parámetro en el nuevo TIBDataSet ... ??
__________________
Piensa siempre en positivo !
Responder Con Cita
  #2  
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
Poder: 21
gluglu Va por buen camino
En cualquier caso .... tengo un GRAN número de campos de un GRAN número de tablas, definidas con un Domain 'NV12' (definido a su vez como Decimal(12,0)), y cambiar todas estas definiciones a BigInt ... ...

De momento, para el caso particular en el que uso el parámetro para preguntar si es Null, me ha servido la contestación que me habeis dado en este hilo.

Gracias una vez más ..
__________________
Piensa siempre en positivo !
Responder Con Cita
  #3  
Antiguo 13-06-2011
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Cita:
Empezado por gluglu Ver Mensaje
No he probado lo que me indicas ...

Según tu comentario, si 'defino' directamente el campo en Tabla1 como BigInt en vez de Decimal(12,0), no me va a dar el error al pasarlo como parámetro en el nuevo TIBDataSet ... ??
Así es, no te debería dar problemas.

Cita:
Empezado por gluglu Ver Mensaje
En cualquier caso .... tengo un GRAN número de campos de un GRAN número de tablas, definidas con un Domain 'NV12' (definido a su vez como Decimal(12,0)), y cambiar todas estas definiciones a BigInt ... ...

De momento, para el caso particular en el que uso el parámetro para preguntar si es Null, me ha servido la contestación que me habeis dado en este hilo.

Gracias una vez más ..
Ahora ya solucionaste tu problema y me parece bien, pero siento que en determinado momento te faltó analizar mejor que tipo de información se pensaba almacenar en las tablas/campos.



Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #4  
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
Poder: 21
gluglu Va por buen camino
Cita:
Empezado por maeyanes Ver Mensaje
... pero siento que en determinado momento te faltó analizar mejor que tipo de información se pensaba almacenar en las tablas/campos.
Realmente lo analicé mucho cuando me puse a definir los campos de cada tabla.

Como dice también Casimiro, generalmente no se suelen utilizar los 12 dígitos que tengo definidos, pero precisamente por eso no me dí cuenta del problema en un nuevo listado que hice hace poco, porque generalmente no se utilizan los 12 dígitos, pero resulta que haciendo pruebas .... sí que suelo hacerlas con 12 dígitos para que si algún diera se diera el caso ....

Nunca pensé tampoco que habría diferencia entre declarar los campos como Decimal(12,0) o BigInt. De hecho, en el 99% por ciento de los casos no he tenido problemas ... hasta que salía el 1% dichoso !

Tengo que indicar que además tengo otro Domain definido con el tipo Decimal(14,2) para guardar unicamente 2 decimales, pero con cifras grandes, cuando trabajo con valores de monedas. Y aunque en Euros ... 12 cifras delante de la coma son muchos Euros, en otras divisas del mundo se pueden lelgar a manejar facilmente valores que sobrepasan los mil millones, es decir, fácilmente podríamos llegar a más de 10 cifras delante de la coma, por lo que ahí recapacité los valores que se iban a poder almacenar y en este caso no podría utilizar el BigInt.

Saludos !
__________________
Piensa siempre en positivo !
Responder Con Cita
  #5  
Antiguo 13-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Al igual que maeyanes para ese tamaño numérico yo definiria un BIGINT.

Pero hay algo que ví en las pruebas y no esperaba: Aún declarando el campo como BIGINT el cast es necesario. Si no lo utilizo, obtengo el error: "Campo Clave no encontrado".

Esto sucede tanto con el manejador de BD como desde el TIBDataSet. Lo que lamento es tener como único argumento el resultado de las pruebas... Voy a buscar un poco si encuentro documentado el motivo.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
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
Poder: 21
gluglu Va por buen camino
Parece que estamos hoy en sintonía, ecfisa y yo !

De nuevo, acabo de hacer las mismas pruebas, sólo ya por curiosidad, y coincido con él, que el Cast es necesario a pesar de haber definido el campo como BigInt.

Código SQL [-]
Select Campo1 from Tabla1
where :Clave is Null
no me funciona, a pesar de haber declarado Clave como BigInt, y me dá de nuevo el error 'Data Type Unknown'

Y si utilizo la función Coalesce, de tal manera que
Código SQL [-]
Select Campo1 from Tabla1
where Coalesce(:Clave, 0) = 0
me vuelve a saltar el mismo error de Arithmetic exception, numeric overflow ...'
__________________
Piensa siempre en positivo !
Responder Con Cita
  #7  
Antiguo 13-06-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.082
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y ese error es desde ibexpert, flamerobin, etc. o es poniéndole el sql a algún componente desde delphi?
Responder Con Cita
  #8  
Antiguo 13-06-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.082
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Yo tengo alguna tabla con campo clave principal bigint, aunque no creo que ningún cliente haya llegado a usar los 12 dígitos, por lo demás, ningún problema.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Método tem parametro do tipo sysint Paulao Varios 2 16-09-2010 21:20:15
SQL CASE y COALESCE mjjj SQL 1 17-12-2008 16:37:52
tipo de dato para pasar parametro a un store procedure Bracus SQL 6 25-03-2008 13:38:13
Parametro a todos los objetos de un tipo amadis OOP 1 06-10-2007 17:46:47
Parametro Tipo BIGINT Stored Procedure hibero Firebird e Interbase 5 13-04-2004 19:49:31


La franja horaria es GMT +2. Ahora son las 18:22:19.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi