Fórum onshow abrir query mudar ? #547141
28/02/2016
0
qrestoque.close;
qrestoque.SQL.clear;
qrestoque.SQL.add('select * from estoque where codproduto = ''' +
eproduto_industria.Text + '''');
qrestoque.open;
tudo certo, mas o problema e o seguinte tenho que abrir muitas query e o form esta pesado tem outra maneira de deixar rapida quando for abrir ?
Leandro Peralta
Curtir tópico
+ 0Posts
28/02/2016
Bin Laden
Gostei + 0
29/02/2016
Leandro Peralta
Gostei + 0
29/02/2016
Marco Antônio
Utilizar '*' nas seus requisitos do SQL é 'tenso'. Não tem como informar somente os campos necessários?
Costumo utilizar: 'Query.DisableControls' antes de abrir a Query e 'Query.EnableControls' para reativar caso seja necessário. Isso costuma ter um
grande desempenho na abertura da Query.
Abc
Gostei + 0
29/02/2016
Leandro Peralta
Gostei + 0
29/02/2016
Leandro Peralta
qrestoque.DisableControls;
qrestoque.close;
qrestoque.SQL.clear;
qrestoque.SQL.add('select * from estoque where codproduto = ''' +
eproduto_industria.Text + '''');
qrestoque.open;
qrestoque.EnableControls;
Gostei + 0
29/02/2016
Huidemar Costa
As vezes o gargalo está em outra query e não nesta do produto....
Gostei + 0
29/02/2016
Rafael Bosco
Segundo, você deu um SELECT * , ou seja, está puxando TODOS os campos da tabela ESTOQUE, está correto isso? você usa eles no seu form?
Terceiro, por que no ONSHOW? toda vez que você clicar pra abrir esse formulário, ele vai executar a Query... Não seria melhor um ShowModal? ou já pensou em realizar a consulta no momento que Cria o Form?
Quarto, o campo CODPRODUTO é um campo INTEGER? ou VARCHAR na tabela? por que se ele for INTEGER, sugiro alterar o seu código:
QrEstoque.Close;
QrEstoque.SQL.Clear;
QrEstoque.Add('SELECT * FROM ESTOQUE WHERE CODPRODUTO = :CODPRODUTO');
QrEstoque.ParamByName('CODPRODUTO').AsInteger := CodProduto // essa pode ser uma variavél controlavél através de Propertys do Form;
QrEstoque.Open;
Gostei + 0
01/03/2016
Marco Antônio
qrestoque.DisableControls;
qrestoque.close;
qrestoque.SQL.clear;
qrestoque.SQL.add('select * from estoque where codproduto = ''' +
eproduto_industria.Text + '''');
qrestoque.open;
qrestoque.EnableControls;
Isto.
Mas conforme tb mencionado. Explore mais a questão de primary Key e indexação.
Considere tb as demais informações tipo, carregar é mesmo necessário no OnCreate? Pq não no OnShow ou através e melhor ainda de um botão?
Abc
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)