onshow abrir query mudar ?
boa tarde, quando vou abrir uma form no onshow fica assim
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 ?
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
Curtidas 0
Respostas
Bin Laden
28/02/2016
Você vai utilizar todas as query no form principal da aplicação?
GOSTEI 0
Leandro Peralta
28/02/2016
opa blz, não e no principal, seria industrialização, esta funcionado certo, mas tem muitas query para abrir junto com a form
GOSTEI 0
Marco Antônio
28/02/2016
Confirmando a dúvida. Realmente é necessário abrir todas as Querys?
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
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
Leandro Peralta
28/02/2016
Marco, quase todas, vou usar Query.DisableControls, nunca usei ele vou ver como fica ai volto para falar o resultado
GOSTEI 0
Leandro Peralta
28/02/2016
Marco ficaria assim ?
qrestoque.DisableControls;
qrestoque.close;
qrestoque.SQL.clear;
qrestoque.SQL.add('select * from estoque where codproduto = ''' +
eproduto_industria.Text + '''');
qrestoque.open;
qrestoque.EnableControls;
qrestoque.DisableControls;
qrestoque.close;
qrestoque.SQL.clear;
qrestoque.SQL.add('select * from estoque where codproduto = ''' +
eproduto_industria.Text + '''');
qrestoque.open;
qrestoque.EnableControls;
GOSTEI 0
Huidemar Costa
28/02/2016
Você realmente precisa mostrar todos os registros quando abre a tela?
As vezes o gargalo está em outra query e não nesta do produto....
As vezes o gargalo está em outra query e não nesta do produto....
GOSTEI 0
Rafael Bosco
28/02/2016
Primeiro, a campo CODPRODUTO é uma Primary Key da tabela ESTOQUE? Se não é, sugiro que coloque, por que as PK das tabelas, são indices que diretamente auxiliam na SQL a achar o determinado campo...
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:
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
Marco Antônio
28/02/2016
Marco ficaria assim ?
qrestoque.DisableControls;
qrestoque.close;
qrestoque.SQL.clear;
qrestoque.SQL.add('select * from estoque where codproduto = ''' +
eproduto_industria.Text + '''');
qrestoque.open;
qrestoque.EnableControls;
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