PDA

Ver la Versión Completa : Tipo de dato a usar...


marceloalegre
28-04-2006, 20:39:40
Buenas, estoy en dudas con el tipo de dato a usar para un campo de la base datos.

Necesito que sea un nro entero, pero que soporte hasta 4294967295 .
Va a ser un campo que tenga como maximo este limite el cual se incrementara con un generator de 0 en adelante y sera manejado como nro de transaccion para un sistema que estoy haciendo...

El tema es que esto no es un integer... el integer soporta la mitad... tampoco es un varchar... Asi que me quedo un poco desconsertado con los tipos de datos de Interbase...

Me podran dar una mano? Gracias!!

ContraVeneno
28-04-2006, 23:30:07
¿con un double o real ignorando los decimales no sirve?


¿se puede hacer tipo string (haciendo las debidas conversiones)?

paty_rlopez
29-04-2006, 17:12:39
Opino lo mismo que ContraVeneno
¿que tal asi?

Campo Numeric (10,0)

dblx
29-04-2006, 18:06:45
Normalmente para correlativos yo uso VARCHAR, porque ese tipo de dato me guarda asi "000000001" esto para INTEGER seria "1", si usas INTEGER deberias hacer las conversiones respectivas: Convertir de entero a cadena, luego leer la longitud, agregar los ceros.... es algo tedioso, pero igual 3 lineas mas de codigo no dañaria tu aplicación... usa VARCHAR

Al González
29-04-2006, 20:16:04
¡Hola a todos!

Escuché que algunas bases de datos ya soportan el tipo entero largo, es decir, un entero de 64 bits.

No recuerdo si InterBase o Firebird 1.5 lo soportan, y no tengo los manuales a mi alcance (estoy en un café Internet de Plaza de la Computación en Ciudad de México :p), pero sería interesante investigar si las nuevas versiones de Firebird lo soportan.

Mientras tanto, me gustaría preguntar a Kanvictor ¿por qué necesita ese rango de valores?

Un abrazo largo.

Al González. :)

RONPABLO
30-04-2006, 04:58:13
Sobre el entero largo me imagino que debe ser el bigint el cual funciona en Firebird 1.5 y soporta hasta 9000000000000000000

marceloalegre
02-05-2006, 21:17:49
Necesito ese rango numerico porque sucede que es un sistema de tarifacion, y para este sistema, tengo que poner un nro de transaccion... el tema es que el ente legal del pais en cuestion, pide que se trabaje con ese rango numerico (0 a 4294967295) y luego de eso vuelva a 0 ... :( , el numero por cierto es exactamente el doble de un integer... no tengo un long integer en interbase
:( ...

los tipos de datos de interbase son:

SMAILLINT
INTEGER
FLOAT
DOUBLE PRECISION
NUMERIC
DECIMAL
DATE
TIME
TIMESTAMP
CHAR
VARCHAR

Puedo llegar a usar string haciendo las debidas conversiones, pero queria saber si alguno de los tipos de datos "nativos" se ajustan a lo que necesito.

Muchas GRACIAS A TODOS por responder!!!!!!

Pd: el numeric le puedo hacer sumas? cual seria la descripcion y rango de numeric?? :confused:

Delfino
03-05-2006, 00:09:17
En IB7 existe el tipo de datos LongInt y en FB1.5 el BigInt q pueden servir en este caso..