[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