FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Extrayendo metadatos
Hola compis, tengo una duda no existencial, uso un codigo que circula por la red para extraer los campos de una tabla (para tener integrado un visor de bbdd en las aplicaciones).
Es el siguiente
En primer lugar deciros que no entiendo las funciones "coll" y "cset" ni poque ha veces usa "f" y otras "r" pero funciona, si me lo podeis explicar me haceis un favor. Y lo segundo es que no entiendo porque hace un case para obtener el tipo de datos si estos estan en la tabla RDB$TYPES, ¿no se podria hacer un left join o algo para sacar directamente el tipo de datos, es decir si el tipo es 14 entonces "TEXT" ya que ese datos esta en la tabla de tipos? Gracias de antemano. |
#2
|
||||
|
||||
Son alias, se usan cuando se hace referencia a más de una tabla, para que no haya problemas de saber a qué campo de qué tabla nos referimos, de esa manera puedes tener campos con el mismo nombre pero de tablas diferentes y estaría claro, ejemplo:
tabla empresas (id, nombre, telefono) tabla sucursales (id, id_empresa, nombre, telefono) Ejemplos:
En el primer caso, se ha usado el alias e para empresas y s para sucursales En el segundo caso, se ha usado el alias emp para empresas y suc para sucursales. Puedes usar el alias que quieras |
#3
|
||||
|
||||
Gracias "casimiro" entendido el tema de alias, entoces coll y cset tambien son alias de COLLATION Y CHARSET.
Por tanto r se refiere a RELATIONS y f a FIELDS, 't'a claro. ¿Y la segunda cuestion? ¿Como meter en el campo field_type el valor del campo RDB$TYPES_NAME de la tabla RDB$TYPES, es decir que en vez de tener un 8 (INTEGER) y hacerle el "case" que coja el nombre de la tabla RDB$TYPES? Sin haber estudiado, lo haria asi, mal, pero es para aclararme "busca en la tabla TYPES y mete en el campo field_type el valor del campo TYPE_NAME de la tabla TYPES segun el valor del campo FIELD_TYPE de la tabla FIELD" LEFT JOIN RDB$TYPES ON field_type = RDB$TYPES.RDB$TYPE_NAME = RDB$FIELDS.RDB$FIELD_TYPE No quiero (o si) que me resuelvas el codigo sino aprender a hacerlo. Gracias, |
#4
|
||||
|
||||
Si existe ese relación, entonces debe funcionar.
Aunque en varios sitios he visto que no se usa, no he investigado el motivo, mira este mensaje: |
#5
|
||||
|
||||
Gracias casimiro, ya habia visto codigos parecidos.
No soy experto en SQL pero igual que a ti me extraña que los codigos que circulan no usen esa relacion. ¿Un buen curso de SQL? Thanks |
#6
|
||||
|
||||
No sé, ya digo, no lo he mirado, aunque supongo que debe existir algún motivo.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿Cómo versionar el esquema o los metadatos de base de datos? | erasmo_ga | Firebird e Interbase | 4 | 08-12-2011 03:08:05 |
Problema extrayendo campo imagen de una tabla access | JoysticK | Gráficos | 8 | 08-08-2008 03:00:07 |
Extraer metadatos de archivos DBF | DobleSiete | SQL | 9 | 25-01-2005 15:59:07 |
Extraer metadatos | RONPABLO | Firebird e Interbase | 2 | 22-10-2004 20:04:56 |
|