2012-06-08 7 views

Respuesta

9

Firebird no admite esquemas, por lo que no hay manera de que pueda obtener esa información.

Lo más parecido podría ser el propietario, que se puede obtener mediante la consulta de RDB$RELATIONS

Editar

Un "esquema" es un espacio de nombres dentro de una base de datos. Aparentemente estás buscando la definición de la tabla, no el esquema.

Puede recuperar las columnas de una tabla y sus tipos de datos mediante la consulta de RDB $ Campos y RDB $ RELATION_FIELDS:

select rf.rdb$relation_name as table_name, 
     rf.rdb$field_name as column_name, 
     case f.rdb$field_type 
     when 14 then 'CHAR' 
     when 37 then 'VARCHAR' 
     when 8 then 'INTEGER' 
     ... 
     end as data_type, 
     f.rdb$field_length, 
     f.rdb$field_scale 
from rdb$fields f 
    join rdb$relation_fields rf on rf.rdb$field_source = f.rdb$field_name 
where rf.rdb$relation_name = 'FOOBAR' 

El tipo de datos se almacena como un entero en la columna RDB $ CAMPO. La lista completa de valores en esa columna está documentada en la Guía de referencia de Interbase: http://www.ibphoenix.com/files/60LangRef.zip (al igual que todas las otras columnas en esa tabla del sistema y todas las demás tablas del sistema también). Es posible que necesite revisar todas las guías de actualización para verificar si hubo cambios en las tablas del sistema desde IB 6.0 (The Firebird manual es un ** reall * mess)

Cuestiones relacionadas