Que diferença faz, assim ou com index?
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!!
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
Curtidas 0
Respostas
Koplin
14/08/2003
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.
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.
GOSTEI 0