Se a tabela existe então open else create

Firebird

04/09/2004

Olá

Estou a dar os meus primeiros passos no Fb e a minha dúvida é a seguinte
Como posso saber se uma tabela existe no meu banco.
O que pretendo fazer é o seguinte.

Se a tabela existe então open else create.

Obrigado desde já.

Joelpa.


Joelpa

Joelpa

Curtidas 0

Respostas

Fsflorencio

Fsflorencio

04/09/2004

Você pode dar um select numa das tabelas de Sistema do FireBird:

SELECT * FROM RDB$RELATIONS
WHERE RDB$RELATION_NAME = ´NOME_DA_TABELA ´

Note que vc deve adicionar espaços no nome da tabela até preencher todos os 31 caracteres.
Se retornar alguma coisa quer dizer que a tabela existe, senão vc dá o seu Create.


GOSTEI 0
Afarias

Afarias

04/09/2004

|Note que vc deve adicionar espaços no nome da tabela até preencher
|todos os 31 caracteres.

:?: :?: por que??!



T+


GOSTEI 0
Renato_sp

Renato_sp

04/09/2004

Aproveitando a duvida do rapaz !!! lendo tbm fiquei um pouco com duvida, e ai vai ela.

O que seria esse RDB$RELATIONS, ele armazena nomes de tabelas que estao criadas? poderia me falar um pouco dele... pq mesmo funcionando o codigo gostaria de entender o pq isso... assim quando precisar ou ate mesmo utilizar um recurso a mais (RDB$RELATIONS) o qual eu nao conheco... Muito obrigado.. !!!!

Renato


GOSTEI 0
Afarias

Afarias

04/09/2004

|O que seria esse RDB$RELATIONS, ele armazena nomes de tabelas que
|estao criadas?

Exatamente isso! É uma tabela de sistema q guarda informações sobre as tabelas do banco de dados.


|poderia me falar um pouco dele... pq mesmo funcionando o codigo
|gostaria de entender o pq isso...

É apenas uma tabela como outra qualquer, vc pode usá-la para retirar informações sobre as tabelas do seu banco de dados.

Se precisar de informações sobre os campos da tabela dai vc tem q consultar tb a rdb$relation_fields

e por ai vai... existem diversas tabelas de sistema com informações sobre os demais objetos do banco de dados


T+


GOSTEI 0
POSTAR