FieldByName delphi
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.
Franklin Gomes.
Curtidas 0
Melhor post
Cauê Nishijima
14/10/2014
Sempre vai mostrar "Produto não cadastrado" porque falta o ELSE
GOSTEI 2
Mais Respostas
Jaime Santos
13/10/2014
Tente fazer o seguinte SQL
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.
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.
GOSTEI 0
Franklin Gomes.
13/10/2014
[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.
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.
GOSTEI 0
Eduardo Silva.
13/10/2014
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
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
GOSTEI 1