![]() |
Tipo de dato a usar...
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!! |
¿con un double o real ignorando los decimales no sirve?
¿se puede hacer tipo string (haciendo las debidas conversiones)? |
Opino lo mismo que ContraVeneno
¿que tal asi? Cita:
|
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
|
¡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. :) |
Sobre el entero largo me imagino que debe ser el bigint el cual funciona en Firebird 1.5 y soporta hasta 9000000000000000000
|
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: |
En IB7 existe el tipo de datos LongInt y en FB1.5 el BigInt q pueden servir en este caso..
|
La franja horaria es GMT +2. Ahora son las 17:56:01. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi