Nome arquivos banco de dados firebird

Delphi

16/09/2015

Tenho um banco de dados firebird 2.06, no qual tem varios arquivos. Item, Cliente, Fornecedor, Saldo, ...., Critica, ..., enfim, varios arquivos que variam conforme o cliente.
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

João Hintz

Curtidas 0

Respostas

Mateus Ribeiro

Mateus Ribeiro

16/09/2015

Boa tarde!

Quando vc diz "Arquivo", se refere ao nome das colunas?
GOSTEI 0
Luiz Freitas

Luiz Freitas

16/09/2015

Olá João!

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
João Hintz

João Hintz

16/09/2015

Não. Por exemplo tenho o arquivo Modulos.fdb e dentro dele tenho a tabela de Clientes, Fornecedores, Itens, Saldo, Movimento, etc...
e eu preciso de uma rotina que me mostre o nome das tabelas, por exemplo, num tMemo.
Att.: João Hintz
GOSTEI 0
João Hintz

João Hintz

16/09/2015

Luiz, o que eu preciso é isto mesmo. Tenho um Arquivo chamado Modulos.fdb e dentro dele tenho as Tabelas de Clientes, Fornecedores, Itens, Saldo, Movimento, Contas a Receber, etc...
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
Luiz Freitas

Luiz Freitas

16/09/2015

Olá João,

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
João Hintz

João Hintz

16/09/2015

Ok. Obrigado. Vou testar.
t+
GOSTEI 0
João Hintz

João Hintz

16/09/2015

Blz. Funcionou. Muito Obrigado. Deus te Abençoe...
GOSTEI 0
Luiz Freitas

Luiz Freitas

16/09/2015

Blz. Funcionou. Muito Obrigado. Deus te Abençoe...


Amém João!

Que bom que deu certo!

Um abraço!
t+++
GOSTEI 0
POSTAR