Locate - não está funcionando!!!!!

Delphi

26/07/2003

Boa noite,

gente não sei mais o que fazer.

Preciso localizar um registro na tabela e editá-lo, estou usando o locate:


cscodx := StrToInt(QHoras.FieldByName(´CSCOD´).AsString);
if Dm.TbPoCSS.Locate(´CSNUM´,cscodx,[]) then begin
Dm.TbPoCss.Edit;
Dm.TbPoCss.FieldByName(´CSVALOR´).AsFloat := HoraValor;
Dm.TbPoCss.Post;
end
else
showmessage(´nao achei.´); //teste
End;

O locate nunca localiza o registro, mesmo qdo a variável cscodx é carregada com um código que tem na tabela que estou pesquisando.

O sistema está usando bco paradox :cry: o campo que estou fazendo pesquisa é do tipo autoincremento (+).

Gente, não sei mais o que fazer.
Pensei em fazer a pesquisa na mão. O que faço? :cry: :oops: :cry:


Debora

Debora

Curtidas 0

Respostas

Cdaraujo

Cdaraujo

26/07/2003

Cara Debora,

Acredito que seu problema, deve ser outro. A lógica em seu Locate está correta, agora vc tem que garantir que os componentes estejam abertos(Open).


procedure TForm1.Button1Click(Sender: TObject);
begin
cscodx := StrToInt(QHoras.FieldByName(´CSCOD´).AsString);
if Dm.TbPoCSS.Active then
begin
if Dm.TbPoCSS.Locate(´CSNUM´,cscodx,[]) then
begin
Dm.TbPoCss.Edit;
Dm.TbPoCss.FieldByName(´CSVALOR´).AsFloat := HoraValor;
Dm.TbPoCss.Post;
end else
ShowMessage(´Código não localizado!´)

end else
ShowMessage(´Componente não está aberto!´);
end;

Atenciosamente,

Daniel Araújo


GOSTEI 0
Debora

Debora

26/07/2003

Não era isso não. O Componente está aberto.

O componente está aberto (Dm.TbPoCSS.Active := true) o dado que ele está procurando, existe na tabela e mesmo assim ele não acha.

Gente alguém tem alguma idéia do que está acontecendo? Ou então outra forma de localizar o registro na tabela?


Obrigada


GOSTEI 0
Marcelo.c

Marcelo.c

26/07/2003

cscodx := StrToInt(QHoras.FieldByName(´CSCOD´).AsString); 
if Dm.TbPoCSS.Locate(´CSNUM´,cscodx,[]) then 
begin 
  Dm.TbPoCss.Edit; 
  Dm.TbPoCss.FieldByName(´CSVALOR´).AsFloat := HoraValor; 
  Dm.TbPoCss.Post; 
end 
else 
  showmessage(´nao achei.´); //teste 
End;


O campo CSCOD é String e CSVALOR é numérico ?


GOSTEI 0
POSTAR