Fórum Nome arquivos banco de dados firebird #531895
16/09/2015
0
Preciso de uma maneira, em delphi, de ler o nome dos arquivos e jogar em um campo memo, por exemplo...
Att. João Hintz
João Hintz
Curtir tópico
+ 0Posts
16/09/2015
Mateus Ribeiro
Quando vc diz "Arquivo", se refere ao nome das colunas?
Gostei + 0
16/09/2015
Luiz Freitas
Quando você fala que no banco tem "varios arquivos" você está falando das tabelas?
Se sim, você pode utilizar, em um componente de acesso ao banco de dados de sua preferência, a seguinte sentença:
select rdb$relation_name as NOMETABELA from rdb$relations where rdb$system_flag = 0
O resultado será o nome de todas as tabelas e view's que existirem no banco de dados ao qual seu componente de conexão estiver ligado.
Gostei + 0
16/09/2015
João Hintz
e eu preciso de uma rotina que me mostre o nome das tabelas, por exemplo, num tMemo.
Att.: João Hintz
Gostei + 0
16/09/2015
João Hintz
Só não entendi o teu exemplo. Como faço para trazer o Nome das Tabelas para um tMemo, por exemplo..
Desculpe, mas eu conheço só um pouco de delphi.. (o basico).
Att. João Hintz
Gostei + 0
16/09/2015
Luiz Freitas
Blz :)
Vamos supor uma estrutura (não sei quais componentes você utiliza para conexão, por isso vou utilizar os componentes com os quais trabalho atualmente, que é o FireDAC):
1) FDConnection1: conectado ao banco Modulos.fdb;
2) FDQuery1: conectada ao FDConnection1 e com o seguinte código SQL:
select rdb$relation_name as NOMETABELA from rdb$relations where rdb$system_flag = 0
Como você precisa dos nomes das tabelas em um TMemo você pode utilizar o seguinte código como exemplo pra fazer o que precisa:
// limpa TMemo1, caso você já tenha carregado a lista antes
TMemo1.Lines.Clear;
// abre FDQuery1
FDQuery1.Open;
// percorre FDQuery1 para carregar os nomes das tabelas para o TMemo1
while not FDQuery1.Eof do begin
// carrega nomes das tabelas para TMemo1
TMemo1.Lines.Add(FDQuery1NOMETABELA.AsString);
// avança registros
FDQuery1.Next;
end;
FDQuery1.Close;
// obs:
// caso você não adicione os campos ao componente FDQuery1 (ou ao seu componente Query),
// a linha: TMemo1.Lines.Add(FDQuery1NOMETABELA.AsString);
// deve ser substituída por: TMemo1.Lines.Add(FDQuery1.FieldByName('NOMETABELA').AsString);
A rotina acima vai carregar os nomes de cada uma das tabelas do seu banco de dados para o componente TMemo1.
Testa ai e se precisar de ajuda com algum detalhe, é só enviar a pergunta.
t++
Gostei + 0
16/09/2015
João Hintz
t+
Gostei + 0
17/09/2015
João Hintz
Gostei + 0
17/09/2015
Luiz Freitas
Amém João!
Que bom que deu certo!
Um abraço!
t+++
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)