Verificar se existe tabela Via Delphi
Gostaria de Verificar se existe uma determinada tabela(Banco Firebird)
via Delphi !
Preciso fazer o seguinte:
Se existe a Tabela (MinhaTabela) então : Drop Table MinhaTabela
isso via aplicativo Delphi.
se alguem puder me ajudar agradeça !!!!!
via Delphi !
Preciso fazer o seguinte:
Se existe a Tabela (MinhaTabela) então : Drop Table MinhaTabela
isso via aplicativo Delphi.
se alguem puder me ajudar agradeça !!!!!
Fabiano Góes
Curtidas 0
Respostas
Marco Salles
22/02/2006
A maneira que eu conheço é usando o objeto global sesion.. Para acessar seus métodos tem que definir [b:2301d93920]DBtables [/b:2301d93920]
Usamos então o método GetTableNames
Este método possui cinco parametros
seria mais ou menos assim:
Usamos então o método GetTableNames
Este método possui cinco parametros
1)O Nome (Aliase) de um Banco de Dados.. [b:2301d93920]Acho que o caminho não serve[/b:2301d93920]
2)Uma string de filtro
3) um valor booleano indicando se as extensoes da tabela serão incluidas -->> No caso de uma pesquisa muito importante
4)um valor booleano indicando se as tebelas de sistemas serao incluida na lista(apenas para bancos de dados SQL)
5)O Componente TstringList
seria mais ou menos assim:
function (NomeDoBanco,NomeDaTabela):boolean; var lista:TStringList; begin result:=False; Lista:=TstringList.Create; Session.GetTableNames (NomeDoBanco, ´´, True, False,Lista); if Lista.indexof(NomeDaTabela) > -1 then result:=true; end;
GOSTEI 0
Paullsoftware
22/02/2006
Tente abrir a tabela dentro do bloco Try Except
senão abrir é pq não existe! :wink:
Try MinhaQuery.Close; MinhaQuery.Sql:=´Select * From MinhaTabela´; MinhaQuery.Open; ShowMessage(´Tabela Existe´); Except //Caso contrario... end;
senão abrir é pq não existe! :wink:
GOSTEI 0
Andremuller
22/02/2006
além das outras respostas, também é possível consultar nas tabelas de sistema, opção que sempre adoto em diversos bancos.
No caso do firebird seria ver se a query abaixo retorna algum resultado:
a vantagem de utilizar as tabelas de sistema é que essas consultas podem ser utilizadas também em procedures e triggers
No caso do firebird seria ver se a query abaixo retorna algum resultado:
select rdb$relation_name from rdb$relations where rdb$flags = 1 and rdb$view_blr is null and rdb$relation_name = ´SUA TABELA´
a vantagem de utilizar as tabelas de sistema é que essas consultas podem ser utilizadas também em procedures e triggers
GOSTEI 0