Fórum Que diferença faz, assim ou com index? #175084

14/08/2003

0

Que diferença faz, assim ou com index?

With DataModule1.CustomerTb do
begin
DataModule1.CustomerTb.First;
{LocateSuccess:=DataModule1.CustomerTb.Locate(´Nome´,LabeledEdit9.Text,[loPartialKey]);
if LocateSuccess=True then}
While not Eof do
begin
if Pos(LabeledEdit9.Text,DataModule1.CustomerTb.fieldByName(´Nome´).AsString)>0 then
begin
CustTmp.Insert;
CustTmp.fieldByName(´CustCod´).AsString:=DataModule1.CustomerTb.fieldByName(´CustCod´).AsString;
CustTmp.fieldByName(´Nome´).AsString:=DataModule1.CustomerTb.fieldByName(´Nome´).AsString;
CustTmp.fieldByName(´CnpjCGC´).AsString:=DataModule1.CustomerTb.fieldByName(´CnpjCGC´).AsString;
CustTmp.fieldByName(´Endereco´).AsString:=DataModule1.CustomerTb.fieldByName(´Endereco´).AsString;
CustTmp.fieldByName(´Bairro´).AsString:=DataModule1.CustomerTb.fieldByName(´Bairro´).AsString;
CustTmp.fieldByName(´Cidade´).AsString:=DataModule1.CustomerTb.fieldByName(´Cidade´).AsString;
CustTmp.fieldByName(´UF´).AsString:=DataModule1.CustomerTb.fieldByName(´UF´).AsString;
CustTmp.fieldByName(´CEP´).AsString:=DataModule1.CustomerTb.fieldByName(´CEP´).AsString;
CustTmp.fieldByName(´FoneComercial´).AsString:=DataModule1.CustomerTb.fieldByName(´FoneComercial´).AsString;
CustTmp.fieldByName(´Ramal´).AsString:=DataModule1.CustomerTb.fieldByName(´Ramal´).AsString;
CustTmp.fieldByName(´FoneResidencial´).AsString:=DataModule1.CustomerTb.fieldByName(´FoneResidencial´).AsString;
CustTmp.fieldByName(´Celular´).AsString:=DataModule1.CustomerTb.fieldByName(´Celular´).AsString;
CustTmp.fieldByName(´FoneContato´).AsString:=DataModule1.CustomerTb.fieldByName(´FoneContato´).AsString;
CustTmp.Post;
end;
DataModule1.CustomerTb.Next;
end;
{end
ELSE
begin
ShowMessage(´Cliente não encontrado´);
end;}
end;

A pergunta é séria!!


Host

Host

Responder

Posts

14/08/2003

Koplin

Se der, use uma query.

With Query do begin;
close;
sql.clear;
sql.add(select * from cliente where nome = ´´´+Labelededit9.text+´´´);
open;
If not IsEmpty then
While not Eof do
begin
if Pos(LabeledEdit9.Text,DataModule1.CustomerTb.fieldByName(´Nome´).AsString)>0 then
begin
CustTmp.Insert;
...

Assim vc faz mais rápido, por trazer somente os registros que satisfaçam a busca. Em rede, faz uma diferença e tanto. Imagine numa tabela que tenha 10.000 clientes e apenas 5 registros que satisfaçam a busca.


Responder

Gostei + 0

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

Aceitar