Fórum Inserir dados dentro de ListBox #236498

07/06/2004

0

Seguinte, tenho um banco de dados CLIENTE com Nome e Tel.

Gostaria de fazer uma pesquisa por nome e se tiver esse nome inserir no listBox

tentei algo assim, mais o que faltou?
var a: String;
begin
l1.Caption:=empresa;
l2.Caption:=processo;

ADOQuery1.SQL.Clear;
a:=´Select * From PROCESSO Where NomedoProcesso="´+processo+´" AND NomeDaEmpresa="´+empresa+´"´;
ADOQuery1.SQL.Add(a);
ADOQuery1.Close;
ADOQuery1.Open;

while not ADOQuery1.Eof do
begin
   // Aqui que devo adicionar as strings para o List Box???
   ADOQuery1.Next;
end;


Alguém me ajuda?

Abraços


Redoctober

Redoctober

Responder

Posts

07/06/2004

Paulo_amorim

Olá

ListBox.Items.Add( SuaString )

onde sua String são os dados da Query.

Para pegar os dados da query, utilize
Query.FieldByName(´campo´).AsString;


Espero que ajude

Ate+


Responder

Gostei + 0

07/06/2004

Redoctober

Fiz assim, mais esta dando erro no AddItem:

procedure TfrmListaProblemas.FormShow(Sender: TObject); var a: String; begin empresa:=l1.Caption; processo:=l2.Caption; ADOQuery1.SQL.Clear; a:=´Select * From PROCESSO Where NomedoProcesso=´´+processo+´´ AND NomeDaEmpresa=´´+empresa+´´´; ADOQuery1.SQL.Add(a); ADOQuery1.Close; ADOQuery1.Open; while not ADOQuery1.Eof do begin ListBox1.AddItem(ADOQuery1.FieldByName(´NomedoProcesso´).AsString); ADOQuery1.Next; end;


O que errei?


Responder

Gostei + 0

07/06/2004

Paulo_amorim

Olá

Não é AddItem mas sim

Listbox1.Items.Add(...);

Tente denovo :D

Espero que funcione
Até+


Responder

Gostei + 0

07/06/2004

Redoctober

Olá Não é AddItem mas sim Listbox1.Items.Add(...); Tente denovo :D Espero que funcione Até+


Agora deu certo!!!!

Só que resolvi colocar um DBGrid no lugar de um ListBox, O problema é que o DBGrid tem duas colunas, só não estou sabendo apontar para cada coluna... Veja o meu código abaixo:

procedure TfrmListaProblemas.FormShow(Sender: TObject);
var a: String;
    nome,status: string;
begin
empresa:=l1.Caption;
processo:=l2.Caption;

ADOQuery1.SQL.Clear;
a:=´Select * From PROBLEMAS Where Processo="´+processo+´" AND Empresa="´+empresa+´"´;
ADOQuery1.SQL.Add(a);
ADOQuery1.Close;
ADOQuery1.Open;

while not ADOQuery1.Eof do
begin
   nome:=ADOQuery1.FieldByName(´NomedoProblema´).AsString;
   status:=ADOQuery1.FieldByName(´Status´).AsString;

   DBGrid1.Columns.Items.:=nome;
   ADOQuery1.Next;
end;


Como eu faço?

Abraco


Responder

Gostei + 0

07/06/2004

Fabio.hc

No dbgrid vc linka a propriedade datasource no componente datasource q esta linkdado no ADOQuery1, assim quando vc der um open no ADOQuery1 os dados serão mostrados no DBGrid:

[b:c07d4062c7] DBGrid1.DataSource:=DataSource1;
DataSource1.DataSet:=ADOQuery1;[/b:c07d4062c7]


procedure TfrmListaProblemas.FormShow(Sender: TObject); 
var a: String; 
    nome,status: string; 
begin 
   empresa:=l1.Caption; 
   processo:=l2.Caption; 

   DBGrid1.DataSource:=DataSource1;
   DataSource1.DataSet:=ADOQuery1;

   ADOQuery1.SQL.Clear; 
   a:=´Select * From PROBLEMAS Where Processo="´+processo+´" AND Empresa="´+empresa+´"´; 
   ADOQuery1.SQL.Add(a); 
   ADOQuery1.Close; 
   ADOQuery1.Open; 
end;



Responder

Gostei + 0

08/06/2004

Paulo_amorim

DBGrid1.DataSource:=DataSource1; DataSource1.DataSet:=ADOQuery1;


Olá

Só para lembrar, isso também pode ser feito em tempo de desenvolvimento mudando as propriedades dos componentes dbgrid e datasource no object inspector

Até+


Responder

Gostei + 0

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

Aceitar