segunda-feira, 15 de agosto de 2011
Resultado de uma Query num Combobox (Delphi + SQL)
Olá amigos,
Hoje vou ajudar um amigo que me pediu pra explicar como colocar o resultado de uma busca com uma Query dentro de um combobox na linguagem Delphi, essa informação é para profissionais da área então para o blog essa informação fica avaliada como Grau de Profissional (Médio), mas então vamos lá:
Primeiro vamos começar explicando que o componente Combobox tem propriedades e elas seram editadas, nesse exemplo iremos editar a propriedade "Itens" observe.
Dentro de um botão do tipo BitBtn vou colocar para fazer a busca em uma tabela de exemplo onde contém nomes de Alunos a qual nomeei TbAluno como mostra a figura 01.
fig01.
Observem que foi utilizado no formulário:
1. Combobox
1. Botão do tipo BitBtn
1. DataBase
1. Query (Nomeada QueryAula).
O DataBase foi utilizado para fazer contato com o banco de dados onde está localizada a tabela tbAluno.
Estou levando em consideração que você sabe fazer contato com o banco de dados já que o objetivo é somente inserir no Combobox os dados da busca nele.
Sendo assim com a Query nomeada de QueryAula coloquei na sua propriedade SQL localizada no object inspector o seguinte comando como mostra a figura 02:
Fig02.
Código SQL:
select * from tb_aluno
// Selecionar todos os alunos cadastrados na tabela de alunos (tb_aluno).
Após inserir o código na query vamos ter que informar uns códigos bem simples no botão BitBtn1 observe na figura 03.
fig03.
Observe:
Antes de começar alguma operação com a QueryAula eu fechei ela para que informações defasadas não sejam pertinentes na nossa nova busca e abri novamente para trazer informações atuais pois ao abrir a QueryAula a mesma executa o comando SQL buscando os alunos cadastrados.
QueryAula.Close;
QueryAula.Open;
Depois eu verifiquei se ela conseguiu trazer algum registro do banco de dados e condicionei que se ela estivesse vazia de registro que mandasse uma mensagem ao usuário informando a ele sobre a situação.
if QueryAula.IsEmpty then
begin
ShowMessage('Nenhum registro encontrado!');
Exit;
end
Logo depois continuei com um comando ELSE, e neste momento estou confiante que você sabe utilizar o fomando if, then e else, e coloquei o comando para situação contrária de vazio para a QueryAula, dizendo aos programa que percorra todos os registros um a um colocando os nomes dos alunos no Combobox do formulário.
Else
begin
While not QueryAula.EOF do
begin
Combobox1.Itens.Add(
QueryAula.FieldByName('nome_aluno').asString);
QueryAula.Next;
end;
end;
Juntando tudo fica assim:
QueryAula.Close;
QueryAula.Open;
if QueryAula.IsEmpty then
begin
ShowMessage('Nenhum registro encontrado!');
Exit;
end
else
begin
While not QueryAula.EOF do
begin
Combobox1.Itens.Add(
QueryAula.FieldByName('nome_aluno').asString);
QueryAula.Next;
end;
end;
Selecione o componente Combobox1 e altere a propriedade Style no Object Inspector para csDropDownList para ficar melhor a visualização do resultado da busca já no combobox.
Depois de tudo prontinho executamos, clicamos no botão para executar a busca e se houver algum registro ele manda uma mensagem de sucesso, caso contrário ele manda uma mensagem de falha, logo depois podemos ver o resultado na figura 04 com todos os alunos cadastrados no combobox.
fig 04.
Bom, tentei deixar tudo bem explicadinho, se você tiver dificuldades entre em contato comigo.
Pra melhorar um pouco mais vou deixar o código do botão dentro de um arquivo de texto no grupo do google pra vocês, junto com as imagens da explicação.
Grupo do Google TecnicaSys - Apoio de Informática.
O endereço estará disponível para vocês se cadastrarem para ter acesso aos assuntos e dados contidos no grupo do google.
Espero ter ajudado.
Assinar:
Postar comentários (Atom)




Muito massa cara...Ajudou muito
ResponderExcluirValew Marcio Junior, pode perguntar que se eu souber eu ajudo.
ExcluirTestei aqui, nao funcionou.
ResponderExcluirTestei aqui, nao funcionou.
ResponderExcluirPoxa cara, desculpe a falta de feedback eu simplesmente não recebia nenhum comentário e nem entrava mais no blog e nem no email ai resolvi entrar por coincidência e vi que você não conseguiu uma solução para você, posso ajudar em algo ainda?
ExcluirParabéns!
ResponderExcluirFuncionou 100%
Euler, obrigado, qualquer coisa pode me chamar para ajudar.
ExcluirGente por muito tempo só recebi comentários no meu email justamente de quem me pediu para explicar as coisas... hoje me emocionei de ver comentários aqui, kkkkk. Nunca mais tinha acessado aqui e hoje senti até vontade de colocar mais coisas. Valew pessoal.
ResponderExcluirExcelente dica Anderson. Isso poderia ser feito com DBLookupcombox?
ResponderExcluirEric