Fórum Como saber se uma tabela já existe num GBD ? #56831

23/08/2006

0

Olá!
Sou Desenvoldor IB/FB + DBexpress + D7.

Tenho a seguinte dúvida:
================
Tenho que montar um aplicativo para fazer upgrade, mas neste tenho q pesquisar se serta tabela já existe no GDB.
Então como faço isso?

A quem puder ajudar, desde já meus agradecimentos.

ANT.CARLOS/SP


Ant.carlos/sp

Ant.carlos/sp

Responder

Posts

24/08/2006

Joaoshi

Colega,

select rdb$relation_name as TABELA from rdb$relations
where rdb$system_flag = 0
ORDER BY 1

Espero ter ajudado.


Responder

Gostei + 0

24/08/2006

Ant.carlos/sp

Obrigado pela atenção!

Vc repondeu:

[color=red:e0b10e9db4]select rdb$relation_name as TABELA from rdb$relations
where rdb$system_flag = 0
ORDER BY 1 [/color:e0b10e9db4]

Como faço para pegar o retorno, p/ ver se a tabela existe ou não ?

T+

ANT.CARLOS/SP


Responder

Gostei + 0

24/08/2006

Joaoshi

O ´select´ que passei retorna todas as tabelas do banco de dados, você poderia jogar o resultado no CLIENTDATASET e fazer as verificações ou
mudar o select.

Exemplo: para saber se existe a tabela COISAS

select rdb$relation_name as TABELA from rdb$relations
where rdb$system_flag = 0 and rdb$relation_name = ´COISAS´

Poder ser que tenha outras formas.

Espero ter ajudado.


Responder

Gostei + 0

26/08/2006

Ant.carlos/sp

Caro amigo!
Obrgado pela atenção.
Bom desejaria saber onde vc conseguiu estas fontes de dados sobre os ´rdb$relations ´, pois desejaria de obter na integra para + estudos.

Desde já meus agradecimentos.

T+

ANT.CARLOS/SP


Responder

Gostei + 0

27/08/2006

Jonas_giron

com esta função vc retira todas as tabelas e os campos e o tipo de dados das tabelas... ferramenta muito util para fazer atualização do sistema

select rdb$relation_fields.rdb$relation_name table_name,
rdb$relation_fields.rdb$field_name field_name,
case
when rdb$types.rdb$type_name = ´VARYING´ then ´VARCHAR´
else rdb$types.rdb$type_name
end field_type,
rdb$fields.rdb$field_length field_size
from rdb$relation_fields
join rdb$fields
on rdb$fields.rdb$field_name =
rdb$relation_fields.rdb$field_source
join rdb$types
on rdb$fields.rdb$field_type = rdb$types.rdb$type and
rdb$types.rdb$field_name = ´RDB$FIELD_TYPE´
where substring(rdb$relation_fields.rdb$relation_name from 1 for 4) <>
´RDB$´
order by rdb$relation_fields.rdb$relation_name


Responder

Gostei + 0

29/08/2006

Sremulador

se vc pegar o ibconsole e setar a propriedade para system table ele te exibira todas as tabelas do sistema...


Responder

Gostei + 0

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

Aceitar