[firebase-br] lentidao para abrir a lista de precos 2
Andrei Luís
compuvale.software em gmail.com
Seg Jun 2 15:08:17 -03 2008
Rubens, você precisa colocar na instrução SQL o que você quer pesquisar. E
não pode ser no onEnter como você colocou, talvez um botão seja o mais
indicado. Ex.:
procedure Tpesq_produto.bPesquisaCodigoClick(Sender: TObject);
begin
Dados.Produtos.Close;
Dados.Produtos.SQL.Clear;
Dados.Produtos.SQL.Add('Select id, codigo, descricao, preco from
produtos'); // coloque
// todos os
campos que você quer, não use *
if edt_codigo.Text <> '' then // mudei esta linha também
begin
Dados.Produtos.SQL.Add('where codigo containing :wcod');
Dados.Produtos.SQL.ParamByName('wcod').asString :=
edt_codigo.text;
end
Dados.Produtos.SQL.Add('order by Descricao'); // mudei esta linha
também
Dados.Produtos.Open;
end;
Acho que é isso,
Abraço,
Andrei
2008/6/2 Rubens - Solucao Empresarial <rubens em solucaoempresarial.net>:
> agradeco as outras respostas
>
> como faço em vez de buscar 10000 itens de vez buscar apenas 50 - se eu
> digitar LIVRO busque apenas LIVRO para baixo -
>
>
> Bom dia Pessoal to precisando de uma mao
> tenho um cadastro de 10000 itens e leva 25 segundos para abrir
> a seguinte rotina - se o usuario clicar no campo descricao ele coloca os
> produtos em ordem alfabetica e /ou se clicar no codigo ele abre a lista em
> ordem de codigo, pelo que pude entenbder ele esta puxando os 10000 itens
> toda vez como posso agilizar isso?
> Alguem pode me dar uma ideia?
> Agradeco a atencao - abaixo ta a rotina que uso
>
> procedure Tpesq_produto.edt_descricaoEnter(Sender: TObject);
> begin
> // edt_codigo.Clear;
> edt_descricao.Text := '';
> if edt_codigo.Text = '' then
> begin
> Dados.Produtos.Close;
> Dados.Produtos.SQL[0] := 'Select * from produtos';
> Dados.Produtos.SQL[1] := 'order by Descricao';
> Dados.Produtos.Open;
> edt_descricao.SetFocus;
> end
> end;
>
> procedure Tpesq_produto.edt_codigoEnter(Sender: TObject);
> begin
> edt_descricao.Clear;
> edt_codigo.Text := '';
> Dados.Produtos.Close;
> Dados.Produtos.SQL[0] := 'Select * from produtos';
> Dados.Produtos.SQL[1] := 'order by codigo1';
> Dados.Produtos.Open;
> edt_codigo.SetFocus
> end;
>
Mais detalhes sobre a lista de discussão lista