Como listar as tabelas do meu banco Firebird
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
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
Curtidas 0
Melhor post
Afarias
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+
select rdb$relation_name from rdb$relations
where rdb$system_flag = 0;
dai é só montar as consultas com a tabela selecionada.
T+
GOSTEI 2
Mais Respostas
Alvaro Vieira
22/09/2004
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+
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+
GOSTEI 0
Emerson Nascimento
22/09/2004
para listar as 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 rdb$relation_name FROM rdb$relations WHERE rdb$system_flag = 0 -- somente objetos de usuário and rdb$relation_type = 0 -- somente tabelas
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
GOSTEI 0
Dirceu Morais
22/09/2004
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.
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.
GOSTEI 0
Emerson Nascimento
22/09/2004
Domains
Tables
Views
Procedures
Triggers
Generators
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
GOSTEI 1
Dirceu Morais
22/09/2004
Domains
Tables
Views
Procedures
Triggers
Generators
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
GOSTEI 0