FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
¿Cómo averiguar el tamaño de un tipo de dato?
Hola:
¿Existe alguna manera de conocer el tamaño del tipo de dato de un campo o de un dominio mediante SQL en un procedimiento almacenado?. Por ejemplo si el campo es de tipo VARCHAR(20) pues que me devuelva 20. Un saludo. |
#2
|
||||
|
||||
¿En qué motor/base de datos?
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
|||
|
|||
Hola:
Es con Firebird 1.5 |
#4
|
||||
|
||||
Podes consultar el diccionario de datos. La tabla rdb$relation_fields tiene la información refernete al tipo de dato, su precisión y escala (en el caso de datos numéricos) y su longitud (en el caso de char y varhchar).
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
|||
|
|||
Gracias por la respuesta. Es lo que estaba buscando
No sabía donde se guardaba toda esa información, además a raíz de eso ya he visto como poder visualizarlas en el IBExpert. A partir de un ejemplo que he visto en Internet he creado el siguiente procedimiento, que me da el tipo y el tamaño: Código PHP:
|
#6
|
|||
|
|||
y desde delphi se puede conocer el tamaño del dato?
|
#7
|
|||
|
|||
Cita:
Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#8
|
|||
|
|||
Gracias por responder, la propiedad DisplayWidth me fue muy util con los string pero no me funciono con los float o integer...
existe alguna forma de saber el tamaño de cualquier campo? |
#9
|
||||
|
||||
Ve pensando en explicar mejor lo que necesitas y lo que quieres obtener.
Un tipo de campo integer no tiene tamaño, porque el tamaño es fijo, dependiendo de si es smallint, integer, biginteger, etc. Una cosa es obtener el tamaño del campo (de la estructura de la tabla) y otra muy distinta obtener el número de caracteres que tiene un registro en un campo determinado. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#10
|
|||
|
|||
gracias por la respuesta y sugerencia...
Mi problema es que tengo mi tabla por ej. los campos y tipo de dato: campo1 varchar(5) campo2 number (2) campo3 number(15) campo4 number(15,4) y quiero saber desde delphi por ej: el tamaño del campo3 (en este caso de 15) Aclaro que estoy trabajando con bases de oracle.... |
#11
|
||||
|
||||
Según creas los tipos de datos en Firebird, éste los convierte según el dialecto, precisión y escala elegidos, y lo almacena internamente con estos tipos:
Tabla de sistema RDB$TYPE: Código:
RDB$TYPE RDB$TYPE_NAME 7 SHORT 8 LONG 9 QUAD 10 FLOAT 27 DOUBLE 35 TIMESTAMP 37 VARYING 12 DATE 13 TIME 16 INT64 Oracle no sé como trabajará, pero muy posiblemente haga también algunos "ajustes" con los tipos de campo. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#12
|
||||
|
||||
Vuelvo a lo dicho originalmente: La respuesta está en el diccionario de datos.
En el caso particular de oracle, podes encontrar dicha información en la vista all_tab_columns: DATA_LENGTH, DATA_PRECISION, DATA_SCALE Claro.. si se trata del campo de una tabla... si es de una vista, la cosa varía.. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
|
|