Olá pessoal, nesta quick tip mostraremos como consultar as tabelas e campos de um banco de dados Firebird acessando diretamente suas tabelas de sistema.
O Firebird possui uma tabela de sistema chamada rdb$relation_fields, esta tabela armazena a informação de todas as tabelas do banco de dados e seus respectivos campos.
Principais campos:
- RDB$FIELD_NAME – Nome do campo
- RDB$RELATION_NAME – Nome da Tabela
- RDB$FIELD_POSITION – Ordem dos campos na tabela
- RDB$FIELD_SOURCE – Nome do domínio vinculado ao campo
Baseado nisso, para consultarmos todos os campos da tabela Cliente, bastaria executarmos o seguinte select.

Além desta, temos a tabela RDB$FIELDS que guarda as informações dos domínios e seus respectivos tipos.
Principais campos:
- RDB$FIELD_NAME – Nome do domínio
- RDB$FIELD_LENGTH – Tamanho do campo
- RDB$FIELD_TYPE – Tipo do campo
Para descobrimos o tipo de cada campo usado no primeiro exemplo, nós temos que fazer um Join entre RDB$RELATION_NAMES e RDB$FIELDS, respectivamente através das colunas RDB$FIELD_SOURCE e RDB$FIELD_NAME.
