Pular para o conteúdo

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

Dica publicada em Banco de Dados / Miscelânea
Evaldo Avelar Marques evaldoavelar
Hits: 28.955 Categoria: Banco de Dados Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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;
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Python 3.0: Gravando dicionários em arquivos

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

Amule, DreaMule, Emule: todos juntos pelo mesmo arquivo!

Adicionando diretórios ao Elisa (Media Center para Linux)

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

Acessando base DB2 no AS400/Iseries com o ODBC

MariaDB no Fedora 17

Atualizando suporte ao Dropbox em Sabayon

Instalando o DBDesigner em distribuições não-RPM

Aplicativo de horário e clima no GNOME e no MATE: Ribeirão Preto/SP está com o nome errado!

#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

Entre na sua conta para comentar.