FieldByName delphi

13/10/2014

31

Ola, estou tentando usar o FieldByName para buscar informações ao clicar no botão. só que esta me retornando apenas a parte de Produto não encontrado, algué[img]http://arquivo.devmedia.com.br/forum/imagem/333304-20141013-123924.jpg[/img]m pode me ajudar no código.
Responder

Post mais votado

14/10/2014

Sempre vai mostrar "Produto não cadastrado" porque falta o ELSE
Responder

Mais Posts

13/10/2014

Jaime Santos

Tente fazer o seguinte SQL

SELECT CNS, PRONT, NOME, CPF, MAE 
FROM RICADPAC
WHERE CNS = '123445'


onde 12345 seja um valor CNS já cadastrado no BD em tratamento...

Na dúvida tbm após o

QLocaliza.Open; acrescente um:
QLocaliza.First;

Desta forma execute seu projeto e verifique se os campos EDITs irão receber corretamente os valores do BD.
Responder
[img:descricao=fieldbyname]http://arquivo.devmedia.com.br/forum/imagem/333304-20141014-172409.jpg[/img]

Na imagem que coloquei esta sem o else é que mandei a imagem errado mas tem o else sim, vou colocar o certo. E se for possível verificar o erro agradeço.
segue abaixo o codigo:

procedure TFormRecepcao.btnLocalizarClick(Sender: TObject);
begin
With QLocaliza,SQL do
begin
Close;
Clear;
Add('SELECT CNS,PRONT, NOME,CPF,MAE FROM RICADPAC WHERE CNS = ''+EdtCodigo.Text+''');
QLocaliza.Open;
if not QLocaliza.IsEmpty then
begin

EdtNome.Text := FieldByName('NOME').AsString;
EditCpf.Text := FieldByName('CPF').AsString;
EditMae.Text := FieldByName('MAE').AsString;

end
else
EdtNome.Text := 'Paciente não encontrado';
end;

end;

procedure TFormRecepcao.FormShow(Sender: TObject);
begin
EdtCodigo.SetFocus;
end;
end.
Responder

14/10/2014

Eduardo Silva.

O erro está no Apostrofo que você colocou a mais, o correto é:

Add('SELECT CNS,PRONT, NOME,CPF,MAE FROM RICADPAC WHERE CNS = '+EdtCodigo.Text+'');

ou

Add('SELECT CNS,PRONT, NOME,CPF,MAE FROM RICADPAC WHERE CNS = ' + QuotedStr(EdtCodigo.Text));

Que é o recomendado.

sds

Eduardo Belo
Responder