Firebird - Recuperando o tipo, nome, tamanho e descrição dos campos de uma tabela

Publicado por Evaldo Avelar Marques em 29/10/2009

[ Hits: 27.830 ]

Blog: http://evaldoavelar.blogspot.com/

 


Firebird - Recuperando o tipo, nome, tamanho e descrição dos campos de uma tabela



O Firebird mantém em tabelas de sistema várias informações sobre o banco de dados e com isso podemos aproveitar essas informações para extrair metadados, que podem ser úteis na hora de criar telas e páginas dinâmicas.

A consulta abaixo retorna o tipo, nome, tamanho e a descrição dos campos da tabela "Acessos".

SELECT r.RDB$FIELD_NAME AS nome,
r.RDB$DESCRIPTION AS descricao,
f.RDB$FIELD_LENGTH AS tamanho,
CASE f.RDB$FIELD_TYPE
WHEN 261 THEN 'BLOB'
WHEN 14 THEN 'CHAR'
WHEN 40 THEN 'CSTRING'
WHEN 11 THEN 'D_FLOAT'
WHEN 27 THEN 'DOUBLE'
WHEN 10 THEN 'FLOAT'
WHEN 16 THEN 'INT64'
WHEN 8 THEN 'INTEGER'
WHEN 9 THEN 'QUAD'
WHEN 7 THEN 'SMALLINT'
WHEN 12 THEN 'DATE'
WHEN 13 THEN 'TIME'
WHEN 35 THEN 'TIMESTAMP'
WHEN 37 THEN 'VARCHAR'
ELSE 'UNKNOWN'
END AS tipo

FROM RDB$RELATION_FIELDS r
LEFT JOIN RDB$FIELDS f ON r.RDB$FIELD_SOURCE = f.RDB$FIELD_NAME
WHERE r.RDB$RELATION_NAME='ACESSOS' -- nome da tabela
ORDER BY r.RDB$FIELD_POSITION;

Saída:

NOME		DESCRICAO		TAMANHO		TIPO
ID           	Sequencial		4        	INTEGER
USUARIO   	Nome de usuário	 	30    		VARCHAR
TABELA		Tabela do sistema  	40	  	VARCHAR
INCLUIR		Operação de incluir    	2	 	SMALLINT
ALTERAR		Operação de alterar  	2		SMALLINT
EXCLUIR		Operação de excluir     2		SMALLINT
VER	        Visualizar   		2		SMALLINT

Adapte a consulta para suas necessidades.

Outras dicas deste autor

Como medir a informação?

Mouse Wireless Microsoft com o Scroll muito rápido no Ubuntu [Resolvido]

Python 3.0: Gravando dicionários em arquivos

HD USB externo com filesystem JFS

O poder do root, esse mega super usuário

Leitura recomendada

Rekall Revealed - Access para Linux

Generatedata - Populando base de dados para testes

DBeaver - Ferramenta de Administração de Banco de Dados

MariaDB no Fedora 17

Manipulando o MySQL diretamente pelo shell

  

Comentários
[1] Comentário enviado por lim em 07/02/2013 - 09:59h

Ótima dica amigo, funciona perfeitamente.
Que DEUS abençõe e fique na paz de CRISTO!!!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts