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

Publicado por Evaldo Avelar Marques em 29/10/2009

[ Hits: 28.640 ]

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

Lazarus: Can't find unit Libc used by...

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

O poder do root, esse mega super usuário

Python 3.0: Gravando dicionários em arquivos

HD USB externo com filesystem JFS

Leitura recomendada

Como Editar Arquivos do Access (MDB) no Libreoffice Base

Modelar dados agora ficou fácil

Alterando campos no Firebird

MariaDB no Fedora 17

Lembre-se: você tem espaço gratuito para armazenar arquivos na rede!

  

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