Fórum Pegar campos de uma tabela dinamicamente... #291320

10/08/2005

0

Olá,


Gostaria de saber se tem como eu pegar em tempo de execução os campos de uma determinada tabela de meu banco access.

obs: gostaria de pegar não só o nome do campo, mas seu tipo, valor padrão, etc....


desde já muito obrigado.


Balceiro

Balceiro

Responder

Posts

12/08/2005

Balceiro

Gente será que ninguem se habilita a responder?


Responder

Gostei + 0

16/08/2005

L3gion4rio

eu uso esse código para pegar os campos da tabela


var
i: integer;
begin
Combobox1.SetFocus;
for i:= 0 to DMDados.QryCliente.FieldCount-1 do
Combobox1.Items.Add(DMDados.QryCliente.Fields[i].FieldName);
for i:= 0 to DMDados.QryCliente.FieldCount-1 do
Combobox2.Items.Add(DMDados.QryCliente.Fields[i].FieldName);


Responder

Gostei + 0

16/08/2005

Balceiro

obrigado, mas o que quero na verdade é pegar a estrutura dos campos...

será que alguém poderia me ajudar...


Responder

Gostei + 0

18/08/2005

Balceiro

Será que estou sendo muito insistente ou ninguém sabe mesmo?


Responder

Gostei + 0

18/08/2005

Andremuller

para qual banco de dados?
Generalizando você deve fazer uma pesquisa nas tabelas de sistema
ex.: no firebird nas tabelas rdb... e no sql server nas tabelas sys...


Responder

Gostei + 0

18/08/2005

Andremuller

ops, desculpe, não vi que tu tinha postado que o banco era access.
Bom aí eu não sei, nunca usei access (e não pretendo usar)

Talvez seja algo parecido com o SQLServer onde tu pesquisa em tabelas como:
sysobjects
sysconstraints
syscolumns
systypes
(...)


Responder

Gostei + 0

18/08/2005

Balceiro

Cara, estou precisando para access... como seria?


Responder

Gostei + 0

19/08/2005

Andremuller

colega só pra não deixar de responder:

eu realmente nunca usei access.
Verifique se tu não cosegue alterar alguma opção para visualizar as tabelas de sistema. Nessas tabelas os bancos de dados armazenam as informações da base, incluíndo nome de tabelas, contraints, campos....
Para todos os bancos que conheço é assim, para access não deve ser diferente.

Desculpe se não te ajudei muito, mas é melhor do que não dizer nada.
Espero que resolva teu problema, mas eu não poderei te ajudar mais que isso.


Responder

Gostei + 0

22/08/2005

Balceiro

Ok, até agora nada, parece que o interesse da comunidade no assunto, visto pelo número de views que este post está tendo, não é pequeno, mas até agora nada.

Será que não dá para fazer isso?


Responder

Gostei + 0

22/08/2005

Marco Salles

procedure TForm1.Button1Click(Sender: TObject);
var
 i:Integer;
begin
ListBox1.Clear;
For i:=0 to Table1.FieldCount -1 do
 begin
  ListBox1.Items.Add(´Nome : ´+Table1.fields[i].FieldName);
  ListBox1.Items.Add(´Classe : ´+Table1.fields[i].ClassName);
  ListBox1.Items.Add(´Size : ´+inttostr(Table1.Fields[i].Size));
 // ListBox1.Items.Add(´ ?´+(Table1.Fields[i].Veja outras Propreidades));
  ListBox1.Items.Add(´´);
end;
end;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar