2012-06-08 14 views

risposta

9

Firebird non supporta gli schemi, quindi non è possibile ottenere tali informazioni.

La cosa più vicina potrebbe essere il proprietario, che si può ottenere tramite una query RDB$RELATIONS

Modifica

A "schema" è uno spazio dei nomi all'interno di un database. Apparentemente stai cercando la definizione della tabella, non lo schema.

È possibile recuperare le colonne di una tabella e dei loro tipi di dati tramite una query RDB $ Campi e 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' 

Il tipo di dati viene memorizzato come un numero intero nella colonna RDB $ FIELD. L'elenco completo dei valori in quella colonna è documentato nella Guida di riferimento Interbase: http://www.ibphoenix.com/files/60LangRef.zip (come tutte le altre colonne in quella tabella di sistema e anche tutte le altre tabelle di sistema). Potrebbe essere necessario consultare tutte le guide all'aggiornamento per verificare se ci sono state modifiche alle tabelle di sistema da IB 6.0 (The firebird manualy è un pasticcio ** reall *)

Problemi correlati