Carregar dados de tabela no ComboBox ou DBComboBox
Estou com dificuldades em jogar os dados de uma tabela "cadastro de pessoas", na realidade os nomes das pessoas cadastrado no campo nome, para um ComboBox ou DBComboBox a fim de selecionar algum dos nomes e fazer um comparação, o problema é estou tentando jogar os dados da tabela para um comboBox e não estou conseguindo, se alguém puder postar uma maneira de fazer isso ficarei grato, estou usando o interbase, delphi 7 e o componene SimpleDataSet
Claudemir Lima
Curtidas 0
Respostas
Thiago Porto
02/09/2011
tem que dar uses ao sqlquery do dbexpress, ou joga o componente na tela e depois tira.dessa forma funciona e não fica com componente na tela.
with TSqlQuery.create(nil) dotry Sqlconnection := "o componente sqlconnection"; Close; Clear; Sql.add(' select nome from clientes'); Open; if not isempty then begin First; while not eof do begin combobox.items.add(fieldbyname('nomedocampo').asstring); next; end; end;finally Close; Free;end;
with TSqlQuery.create(nil) dotry Sqlconnection := "o componente sqlconnection"; Close; Clear; Sql.add(' select nome from clientes'); Open; if not isempty then begin First; while not eof do begin combobox.items.add(fieldbyname('nomedocampo').asstring); next; end; end;finally Close; Free;end;
GOSTEI 0
Claudemir Lima
02/09/2011
Consegui que a rotina jogasse os dados da tabela no comboBox, porém, está inserindo somente um registro, a quantidade de vezes de acordo com a quantia de registro que existe na tabela, ex:
na tabela tem 20 registros com diferentes nomes, o ComboBox está sendo preenchido com somente um registro 20 vezes, não estou conseguindo resolver, agradeço quem puder me ajudar.
begin
SimpleDataSet1.Close;
SimpleDataSet1.DataSet.CommandText := 'Select NOME_GUERRA From TB_PESSOAL order by NOME_GUERRA';
SimpleDataSet1.Open;
If Not SimpleDataSet1.IsEmpty then
begin
SimpleDataSet1.first;
while not SimpleDataSet1.Eof do
begin
combobox2.Items.Add(Dm.SDCautela.FieldByName('NOME_GUERRA').value);
SimpleDataSet1.next;
end;
end;
// SimpleDataSet1.Close;
// SimpleDataSet1.Free;
end;
SimpleDataSet1.Close;
SimpleDataSet1.DataSet.CommandText := 'Select NOME_GUERRA From TB_PESSOAL order by NOME_GUERRA';
SimpleDataSet1.Open;
If Not SimpleDataSet1.IsEmpty then
begin
SimpleDataSet1.first;
while not SimpleDataSet1.Eof do
begin
combobox2.Items.Add(Dm.SDCautela.FieldByName('NOME_GUERRA').value);
SimpleDataSet1.next;
end;
end;
// SimpleDataSet1.Close;
// SimpleDataSet1.Free;
end;
GOSTEI 0
Thiago Porto
02/09/2011
pelo que eu vi no teu código tu esta adicionando no combobox o valor de um simpledataset diferente do que tu esta usando no código ex: tu pega o valor do simpledataset"SDCautela ", mas esta mandando executar no SimpleDataSet1
GOSTEI 0
Claudemir Lima
02/09/2011
Obrigado Tiago, resolvido o problema, agradeço a atenção, Deus lhe pague!
GOSTEI 0