ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

ENTER executar comando SQL

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
spader
Novato
Novato


Registrado: Sexta-Feira, 3 de Agosto de 2012
Mensagens: 22

MensagemEnviada: Sex Ago 24, 2012 2:32 pm    Assunto: ENTER executar comando SQL Responder com Citação

Boa tarde amigos,

Preciso de uma ajudinha básica... estou tendo problemas para, quando o usuário dar um ENTER ou TAB em um Edit, executar um comando SQL e o resultado desse comando aparecer em outro Edit.

Por Exemplo:

No Edit1 eu digito o código do Cliente e depois de digitar eu dou um ENTER que executa o SQL e preenche o Edit2 com o resultado.

Eu consegui algo parecido com o comando abaixo, mas ele preenche o Edit2 antes de dar ENTER. Na verdade ele tá pegando o primeiro registro do banco e setando no Edit 2

Código:

procedure TfrmLocacao.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    QCliente.Close;
    QCliente.SQL.Clear;
    QCliente.SQL.Add('select nome from Cad_Cliente');
    QCliente.SQL.Add('where id_cliente = '''+Edit1.Text+'''');
    QCliente.Open;
    QCliente.Refresh;
  end;
  Edit2.Text := QCliente.FieldByName('nome').AsString;
end;
Confused
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
viox
Colaborador
Colaborador


Registrado: Sábado, 22 de Outubro de 2011
Mensagens: 1090
Localização: SINOP - MT

MensagemEnviada: Sex Ago 24, 2012 3:47 pm    Assunto: Responder com Citação

Amigo faz assim no OnExit do Edit1 vocÊ faz o código

Código:

procedure TfrmLocacao.Edit1Exit(Sender: TObject);
begin
    QCliente.Close;
    QCliente.SQL.Clear;
    QCliente.SQL.Add('select nome from Cad_Cliente');
    QCliente.SQL.Add('where id_cliente = '''+Edit1.Text+'''');
    QCliente.Open;
    Edit2.Text := QCliente.FieldByName('nome').AsString;
end;

_________________
Just another Delphi guy.


http://www.soft42.com
http://www.nortaonegocios.com.br
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
Ghost_Rider
Colaborador
Colaborador


Registrado: Segunda-Feira, 6 de Outubro de 2003
Mensagens: 4437

MensagemEnviada: Sex Ago 24, 2012 3:49 pm    Assunto: Responder com Citação

Claro...o seu código de preenchimento esta fora do if...pega o código que modifiquei e altera sua rotina

procedure TfrmLocacao.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
QCliente.Close;
QCliente.SQL.Clear;
QCliente.SQL.Add('select nome from Cad_Cliente');
QCliente.SQL.Add('where id_cliente = '''+Edit1.Text+'''');
QCliente.Open;
QCliente.Refresh;
Edit2.Text := QCliente.FieldByName('nome').AsString;
end;
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
daniel8634
Aprendiz
Aprendiz


Registrado: Quinta-Feira, 25 de Novembro de 2010
Mensagens: 194
Localização: Governador Valadares / Belo Horizonte

MensagemEnviada: Sex Ago 24, 2012 3:50 pm    Assunto: Re: ENTER executar comando SQL Responder com Citação

spader escreveu:
Boa tarde amigos,

Preciso de uma ajudinha básica... estou tendo problemas para, quando o usuário dar um ENTER ou TAB em um Edit, executar um comando SQL e o resultado desse comando aparecer em outro Edit.

Por Exemplo:

No Edit1 eu digito o código do Cliente e depois de digitar eu dou um ENTER que executa o SQL e preenche o Edit2 com o resultado.

Eu consegui algo parecido com o comando abaixo, mas ele preenche o Edit2 antes de dar ENTER. Na verdade ele tá pegando o primeiro registro do banco e setando no Edit 2

Código:

procedure TfrmLocacao.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    QCliente.Close;
    QCliente.SQL.Clear;
    QCliente.SQL.Add('select nome from Cad_Cliente');
    QCliente.SQL.Add('where id_cliente = '''+Edit1.Text+'''');
    QCliente.Open;
    QCliente.Refresh;
  end;
  Edit2.Text := QCliente.FieldByName('nome').AsString;
end;
Confused


Cara, você já deve estar iniciando essa QCliente aberta não está não? pra ele estar já colocando o primeiro registro no Edit2 provavelmente e isso, tenta colocar outra Query pra fazer esse processo que você deseja ou então inicia com essa QCliente já fechada.

Testa ai.

Valeu.

Abraço.

Daniel Alves
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
spader
Novato
Novato


Registrado: Sexta-Feira, 3 de Agosto de 2012
Mensagens: 22

MensagemEnviada: Seg Ago 27, 2012 1:30 pm    Assunto: Responder com Citação

Boa tarde pessoal,

testei todas as dicas mas nenhuma funcionou... as dicas dada pelo viox e pelo Ghost_Rider estão dando a mensagem de erro "TIPO DE DADOS IMCOMPATIVEIL NA EXPRESSÃO DO CRITÉRIO" e não faço mínima ideia do que seja... alguém pode me ajudar!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Seg Ago 27, 2012 9:23 pm    Assunto: Responder com Citação

spader escreveu:
Boa tarde pessoal,

testei todas as dicas mas nenhuma funcionou... as dicas dada pelo viox e pelo Ghost_Rider estão dando a mensagem de erro "TIPO DE DADOS IMCOMPATIVEIL NA EXPRESSÃO DO CRITÉRIO" e não faço mínima ideia do que seja... alguém pode me ajudar!


Tem que estar dentro do bloco como ja falaram ai

Código:
procedure TfrmLocacao.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    QCliente.Close;
    QCliente.SQL.Clear;
    QCliente.SQL.Add('select nome from Cad_Cliente');
    QCliente.SQL.Add('where id_cliente = '''+Edit1.Text+'''');
    QCliente.Open;
    //comente este refresh ai
    //QCliente.Refresh;
    if not QCliente.isempty then
     Edit2.Text := QCliente.FieldByName('nome').AsString;
  end; 
end;


Veja se vai dar certo ai.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB