[firebase-br] Como saber se uma tabela existe no banco?

Daniel / Tecnobyte temp em tecnobyte.com.br
Qui Out 21 15:06:18 -03 2004


> O código está correto?
>                   ê
> >> SELECT 1 FROM RDB$RELATIONS
> >> WHERE RDB$RELATION_NAME='CLIENTE';

Sim, está! Qual a dúvida?

Se a tabela existe, então retorna 1. Se não existe, não retorna nada.

Sempre que quero testar a existência de um ou mais registros com determinada
condição eu faço assim.

Geralmente uso o número 1, mas poderia ser qualquer outro valor. O que
interessa mesmo é se vai retornar pelo menos uma linha no "result set" ou
não. Se retornar alguma coisa é porque o registro existe. Se não retornar
nada (IsEmpty ou EOF) é porque não existe.

Se há possibilidade de existir mais de uma ocorrência com a mesma condição
(o que não é o caso do exemplo acima), então o comando para testar a
existência de pelo menos uma ocorrência seria:

SELECT      FIRST 1      1 FROM <Tabela>
WHERE <Condição>

Observe que o comando é "FIRST 1" para retornar somente a primeira linha,
pois não nos interessa quantas existem, mas apenas se existe pelo menos uma.
O segundo "1" é apenas um valor qualquer para que o SELECT tenha uma coluna
(pois precisa ter pelo menos uma coluna!).

Atenciosamente.

Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br





Mais detalhes sobre a lista de discussão lista