Como listar as tabelas do meu banco Firebird

22/09/2004

0

Caros amigos da lista

Um cliente me pediu para disponibilizar num formulario uma consulta, onde pudesse selecionar todas as tabelas do meu banco FIREBIRD.

Dependendo da tabela selecionada, mostraria os campos correspondentes e as opcoes de busca.

Algum amigo tem idéia de como posso fazer?

Grato


Rbfonseca

Rbfonseca

Responder

Post mais votado

22/09/2004

para listar as tabelas::

select rdb$relation_name from rdb$relations
where rdb$system_flag = 0;


dai é só montar as consultas com a tabela selecionada.



T+


Afarias

Afarias
Responder

Mais Posts

19/07/2019

Alvaro Vieira

Creio que quando você escreve "todas as tabelas" não devem ser consideradas as do sistema, certo?
O comando correto para listar apenas as tabelas de usuário (sem as views por ex.) é o seguinte:

Select rdb$relation_name
from rdb$relations
where ((rdb$system_flag=0) or (rdb$system_flag is null)) and
(rdb$view_source is null)
order by rdb$relation_name

t+
Responder

22/07/2019

Emerson Nascimento

para listar as tabelas:
SELECT rdb$relation_name
FROM rdb$relations
WHERE rdb$system_flag = 0 -- somente objetos de usuário
    and rdb$relation_type = 0 -- somente tabelas
tipos possíveis:
0 - tabelas
1 - views
2 - tabela externa
3 - tabela de monitoramento
4 - nível de conexão GTT
5 - nível de transação GTT

para listar os campos:
SELECT r.rdb$relation_name, rf.rdb$field_name, rf.rdb$field_position
FROM rdb$relations r
INNER JOIN rdb$relation_fields rf on rf.rdb$relation_name = r.rdb$relation_name
WHERE r.rdb$system_flag = 0 and r.rdb$relation_type = 0
    AND r.rdb$relation_name = 'tabela_da_qual_deseja_listar_os_campos'
ORDER BY rf.rdb$relation_name, rf.rdb$field_position


Responder

09/10/2019

Dirceu Morais

Amigos,

Qual o comando que eu utilizo para me dar a quantidade de:

Domains
Tables
Views
Procedures
Trigger
Generations

igual aparece no IBExpert.

As Tables parece ser mais fácil.
Responder

10/10/2019

Emerson Nascimento

Domains
select * from rdb$fields where rdb$system_flag = 0 and not (rdb$field_name like 'RDB$%') -- somente objetos de usuário
select count(*) total from rdb$fields where rdb$system_flag = 0 and not (rdb$field_name like 'RDB$%') -- somente objetos de usuário


Tables
select * from rdb$relations where rdb$system_flag = 0 and rdb$relation_type = 0 -- somente objetos de usuário / somente tabelas
select count(*) total from rdb$relations where rdb$system_flag = 0 and rdb$relation_type = 0 -- somente objetos de usuário / somente tabelas


Views
select * from rdb$relations where rdb$system_flag = 0 and rdb$relation_type = 1 -- somente objetos de usuário / somente views
select count(*) total from rdb$relations where rdb$system_flag = 0 and rdb$relation_type = 1 -- somente objetos de usuário / somente views


Procedures
select * from rdb$procedures where rdb$system_flag = 0 -- somente objetos de usuário
select count(*) total from rdb$procedures where rdb$system_flag = 0 -- somente objetos de usuário


Triggers
select * from rdb$triggers where rdb$system_flag = 0 -- somente objetos de usuário
select count(*) total from rdb$triggers where rdb$system_flag = 0 -- somente objetos de usuário


Generators
select * from rdb$generators where rdb$system_flag = 0 -- somente objetos de usuário
select count(*) total from rdb$generators where rdb$system_flag = 0 -- somente objetos de usuário

Responder

11/10/2019

Dirceu Morais

Domains
select * from rdb$fields where rdb$system_flag = 0 and not (rdb$field_name like 'RDB$%') -- somente objetos de usuário
select count(*) total from rdb$fields where rdb$system_flag = 0 and not (rdb$field_name like 'RDB$%') -- somente objetos de usuário


Tables
select * from rdb$relations where rdb$system_flag = 0 and rdb$relation_type = 0 -- somente objetos de usuário / somente tabelas
select count(*) total from rdb$relations where rdb$system_flag = 0 and rdb$relation_type = 0 -- somente objetos de usuário / somente tabelas


Views
select * from rdb$relations where rdb$system_flag = 0 and rdb$relation_type = 1 -- somente objetos de usuário / somente views
select count(*) total from rdb$relations where rdb$system_flag = 0 and rdb$relation_type = 1 -- somente objetos de usuário / somente views


Procedures
select * from rdb$procedures where rdb$system_flag = 0 -- somente objetos de usuário
select count(*) total from rdb$procedures where rdb$system_flag = 0 -- somente objetos de usuário


Triggers
select * from rdb$triggers where rdb$system_flag = 0 -- somente objetos de usuário
select count(*) total from rdb$triggers where rdb$system_flag = 0 -- somente objetos de usuário


Generators
select * from rdb$generators where rdb$system_flag = 0 -- somente objetos de usuário
select count(*) total from rdb$generators where rdb$system_flag = 0 -- somente objetos de usuário




Isso, isso, valw
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar