Locate - não está funcionando!!!!!
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:
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
Curtidas 0
Respostas
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
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
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
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
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