Fórum Exibir os campos de uma SQL no ListBox #271628
09/03/2005
0
já dei uma boa pesquisada e ainda ñ consegui resolver meu problema.
tenho um programa que monta as SQL dinamicamente, por exemplo:
Qry = TQuery
with Qry do begin Close; SQL.Clear; SQL.Add(´SELECT CLIENTES.*, ´); SQL.Add(´ CLIENTES_ENDEREÇO.*, ´); SQL.Add(´ VENDAS.*, ´); SQL.Add(´ PRODUTOS.* ´); SQL.Add(´FROM VENDAS ´); SQL.Add(´ LEFT CLIENTES ´); SQL.Add(´ ON (VENDAS.CD_CLIENTE = CLIENTES.CD_CLIENTE)´); ... // E assim por diante ... // em alguns casos existem cláusulas WHERE Open; end;
o que estou precisando é que independente da Query trazer ou não resultados, os campos (Tabela.Campo) sejam exibidos num ListBox.
Então como estou selecionando no caso acima CLIENTES.* listar no ListBox:
CLIENTES.CD_CLIENTE
CLIENTES.NOME_CLIENTE
CLIENTES.DATA_INCLUSAO
VENDAS.CD_CLIENTE
.... // e assim por diante.. a tabela deve ser exibida porque por exemplo o campo CD_CLIENTE pode estar presente em varias tabelas da Sql.
agradecido
Diogo.
Diogoalles
Curtir tópico
+ 0Posts
09/03/2005
Lucianopimenta
SQLConnection1.GetFieldNames(´NOMETABELA´, ListBox1.Items);
Mas nesse caso deve usar o seguinte:
var
i: integer;
begin
for i := 0 to Query.Fields.Count - 1 do
ListBox1.Items.Add(Query.Fields[i].DisplayName);
end;
Gostei + 0
09/03/2005
Diogoalles
tb achei a seguinte solução.. utilizo BDE com Firebird.
for i := 0 to QCampos.Fields.Count - 1 do begin ListBoxCampos.Items.Add(QCampos.Fields[i].FieldName); end;
mas ainda está faltando saber qual a tabela de cada campo... pois como ja coloquei acima eu tenho por exemplo o campo CD_CLIENTE presente em varias tabelas que são selecionadas na SQL... sua nomencaltura fica assim:
CD_CLIENTES
CD_CLIENTES1
CD_CLIENTES2
... e assim por diante...
precisaria que ficasse com o nome da tabela..
assim:
CLIENTES.CD_CLIENTES
VENDAS.CD_CLIENTES1
RECIBOS.CD_CLIENTES2
...etc...
por isso preciso tb do nome da tabela na frente.. até o momento não consegui .. agradeço a todos.
Diogo.
Gostei + 0
09/03/2005
Lucianopimenta
select CLIENTE.COD_CLIENTE, CLIENTE.NOME_CLIENTE, VENDAS.COD_CLIENTE as COD_CLIENTE_VENDAS, TABELA.COD_CLIENTE as COD_CLIENTE_TABELA
assim irá aparecer o nome COD_CLIENTE_VENDAS no lugar de COD_CLIENTE1, por exemplo.
É uma alternativa.
Gostei + 0
10/03/2005
Diogoalles
Sera uma alternativa pra distinguir os campos, mas mesmo assim precisarei saber o nome da tabela ao qual se refere o campo
agradecido pela ajuda e se tiverem alguma dica estarei no aguardo
abraço
Diogo
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)