Pegar campos de uma tabela dinamicamente...
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.
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
Curtidas 0
Respostas
Balceiro
10/08/2005
Gente será que ninguem se habilita a responder?
GOSTEI 0
L3gion4rio
10/08/2005
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);
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);
GOSTEI 0
Balceiro
10/08/2005
obrigado, mas o que quero na verdade é pegar a estrutura dos campos...
será que alguém poderia me ajudar...
será que alguém poderia me ajudar...
GOSTEI 0
Balceiro
10/08/2005
Será que estou sendo muito insistente ou ninguém sabe mesmo?
GOSTEI 0
Andremuller
10/08/2005
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...
Generalizando você deve fazer uma pesquisa nas tabelas de sistema
ex.: no firebird nas tabelas rdb... e no sql server nas tabelas sys...
GOSTEI 0
Andremuller
10/08/2005
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
(...)
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
(...)
GOSTEI 0
Balceiro
10/08/2005
Cara, estou precisando para access... como seria?
GOSTEI 0
Andremuller
10/08/2005
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.
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.
GOSTEI 0
Balceiro
10/08/2005
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?
Será que não dá para fazer isso?
GOSTEI 0
Marco Salles
10/08/2005
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;
GOSTEI 0