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.

tabela Cliente

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.

Join