Fórum Gostaria de porocurar mais de um registro pelo locate!! #174480

12/08/2003

0

Se desejo procurar um registro pelo Locate, acabo encontrando apenas o primeiro registro, gostaria de encontrar, os subsequentes!Exemplo:

Var
LocateSuccess: Boolean;
begin

if Key=Chr(13) then
begin
DataModule1.CustomerTb.Active:=False;
DataModule1.CustomerTb.IndexFieldNames:=´Nome´;
DataModule1.CustomerTb.Active:=True;
With DataModule1.CustomerTb do
begin
DataModule1.CustomerTb.First;
while not eof do
begin
//if DataModule1.CustomerTb.FindKey([LabeledEdit9.Text]) then
LocateSuccess:=DataModule1.CustomerTb.Locate(´Nome´,LabeledEdit9.Text,[loPartialKey]);
if LocateSuccess=True then
begin
CustTmp.Insert;
CustTmp.fieldByName(´CustCod´).AsString:=DataModule1.CustomerTb.fieldByName(´CustCod´).AsString;
CustTmp.fieldByName(´Nome´).AsString:=DataModule1.CustomerTb.fieldByName(´Nome´).AsString;

Nesta instrução, procuro por ´Alex´, mas é apenas encontrado o primeiro
Alex, que esta no registro, gostaria de encontrar os proximos que possivelmente existam, alguem sabe como?


Host

Host

Responder

Posts

12/08/2003

Aroldo Zanela

Colega,

Como não mencionou o Banco de dados, imagino que esteja utilizando um banco desktop (Paradox/xBase):

if DataModule1.CustomerTb.FindKey([LabeledEdit9.Text]) then
begin
  while (not DataModule1.CustomerTb.eof) and (DataModule1.CustomerTb.FieldByName(´Nome´)
  .Value = LabeledEdit9.Text )) do
  begin
    CustTmp.Append;
    CustTmp.fieldByName(´CustCod´).AsString:=DataModule1.CustomerTb.fieldByName(´CustCod´).AsString;
    ...
    CustTmp.Post;
    DataModule1.CustomerTb.Next;
  end; // end..while
end; // end..if



Responder

Gostei + 0

12/08/2003

Host

Porem, existe uma outra forma, como por exemplo:
Fazer com que o usuario digite apenas uma fração do nome no Edit1, logo abaixo eu iria mostrar em um DBGrid1, todos os nomes encontrados
no bd, exemplo:
Edit1.Text:=´MARCO´;
E no DBGrid1, apareceria o resultado:
Alexandre Marco de Andrade
Luiz Marco De Assis
Marco Da Silva
.
.
.
Em uma unica pesquisa.Fazer isto, até que sei fazer, mas com um laço FOR ou While, com Indexadores não sei como se faz, vc sabe?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar