| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
spader Novato

Registrado: Sexta-Feira, 3 de Agosto de 2012 Mensagens: 22
|
Enviada: Sex Ago 24, 2012 2:32 pm Assunto: ENTER executar comando SQL |
|
|
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;
|  |
|
| Voltar ao Topo |
|
 |
viox Colaborador

Registrado: Sábado, 22 de Outubro de 2011 Mensagens: 1090 Localização: SINOP - MT
|
Enviada: Sex Ago 24, 2012 3:47 pm Assunto: |
|
|
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 |
|
 |
Ghost_Rider Colaborador

Registrado: Segunda-Feira, 6 de Outubro de 2003 Mensagens: 4437
|
Enviada: Sex Ago 24, 2012 3:49 pm Assunto: |
|
|
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 |
|
 |
daniel8634 Aprendiz

Registrado: Quinta-Feira, 25 de Novembro de 2010 Mensagens: 194 Localização: Governador Valadares / Belo Horizonte
|
Enviada: Sex Ago 24, 2012 3:50 pm Assunto: Re: ENTER executar comando SQL |
|
|
| 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;
|  |
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 |
|
 |
spader Novato

Registrado: Sexta-Feira, 3 de Agosto de 2012 Mensagens: 22
|
Enviada: Seg Ago 27, 2012 1:30 pm Assunto: |
|
|
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 |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Seg Ago 27, 2012 9:23 pm Assunto: |
|
|
| 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 |
|
 |
|