[firebase-br] Usar Like ou o que?
Zottis
zottissistemas em brturbo.com.br
Qua Jul 4 16:55:04 -03 2007
Pessoal, li que não se deve usar o comando like pois pode deixar lento a
pesquisa, mas como faria este comando,
estou mandando do jeito que faço, até agora não está tão lento, mas já está
pesando dependendo do período escolhido, para evitar futuros aborrecimentos
estou querendo mudar o sistema de pesquisas do meu sistema.
Obrigado
if RadioRazaoSocial.Checked=true then
begin
Screen.Cursor := crSQLWait;
BuscaSrc.DataSe t:= nil;
With Busca do
begin
Close;
SQL.Clear;
SQL.Add('select Pedidos.Total, Pedidos.USUARIONO,
Pedidos.FORMAPGTONO,Pedidos.ADIANTAMENTOS, Pedidos.Entregue,
Pedidos.EntregueDia,');
SQL.Add('Pedidos.Comprador, Pedidos.TOTALITENS,
Pedidos.Desconto,Pedidos.JurosTaxa, Pedidos.PedidoNo, Pedidos.Data,');
SQL.Add('Pedidos.Despacho, Pedidos.Prometido,
Pedidos.EnderecoEntrega,Pedidos.ClienteNo,Pedidos.TotalPago,Pedidos.TotalDescontos,Pedidos.Lojano,
Pedidos.TOTAL_QUANTIA,');
SQL.Add('clientes.clienteno,Clientes.RazaoSocial as
clienteRS,Clientes.NomeFantasia as clienteNF');
SQL.Add('From Pedidos,Clientes');
SQL.Add('Where Pedidos.ClienteNo = Clientes.ClienteNo and
Pedidos.Lojano Like(:VarLojaNo)and');
SQL.Add('(Pedidos.entregue) like(:VarEntregue) and');
If RadioGroupOrdenar.ItemIndex = 0 then
begin
SQL.Add('Pedidos.Data between :VarDataI and :VarDataF
and');
end else
If RadioGroupOrdenar.ItemIndex = 1 then
begin
SQL.Add('Pedidos.Prometido between :VarDataI and
:VarDataF and');
end else
If RadioGroupOrdenar.ItemIndex = 2 then
begin
SQL.Add('Pedidos.Prometido between :VarDataI and
:VarDataF and');
end;
SQL.Add('Upper(Clientes.RazaoSocial) Like Upper(:VarNome)');
if RadioGroupOrdenar.ItemIndex = 0 then
begin
SQL.Add('Order by
Pedidos.Data,Pedidos.Prometido,Pedidos.PedidoNo');
end else
if RadioGroupOrdenar.ItemIndex = 1 then
begin
SQL.Add('Order by
Pedidos.Prometido,Pedidos.Data,Pedidos.PedidoNo');
end else
if RadioGroupOrdenar.ItemIndex = 2 then
begin
SQL.Add('Order by
Pedidos.PedidoNo,Pedidos.Data,Pedidos.Prometido');
end;
ParamByName('VarDataI').AsDate:=Data1.Date;
ParamByName('VarDataF').AsDate:=Data2.Date;
ParamByName('VarNome').AsString:='%'+Edit1.Text+'%';
if Editlojano.Text <>''then
begin
ParamByName('VarLojaNo').AsString := EditLojaNo.Text;
end else
if Editlojano.Text = ''then
begin
ParamByName('VarLojaNo').AsString:='%';
end;
if RadioGroup1.ItemIndex = 0 then
begin
ParamByName('VarEntregue').AsString:='%';
end;
if RadioGroup1.ItemIndex = 1 then
begin
ParamByName('VarEntregue').AsString:='S';
end;
if RadioGroup1.ItemIndex = 2 then
begin
ParamByName('VarEntregue').AsString:='N';
end;
Prepare;
Open;
end;
Somar_o_Pedido;
BuscaSrc.DataSet:=Busca;
Screen.Cursor:=crDefault;
end else
Mais detalhes sobre a lista de discussão lista