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?
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
Curtir tópico
+ 0
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):
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?
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
Clique aqui para fazer login e interagir na Comunidade :)