¿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. |
¿En qué motor/base de datos?
|
Hola:
Es con Firebird 1.5 |
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. ;) |
Gracias por la respuesta. Es lo que estaba buscando :cool:
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:
|
y desde delphi se puede conocer el tamaño del dato?
|
Cita:
Salud OS. |
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? |
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 |
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.... |
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 Oracle no sé como trabajará, pero muy posiblemente haga también algunos "ajustes" con los tipos de campo. Saludos |
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. ;) |
La franja horaria es GMT +2. Ahora son las 12:17:05. |
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