GARANTIR DESCONTO

Fórum onshow abrir query mudar ? #547141

28/02/2016

0

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 ?
Leandro Peralta

Leandro Peralta

Responder

Posts

28/02/2016

Bin Laden

Você vai utilizar todas as query no form principal da aplicação?
Responder

Gostei + 0

29/02/2016

Leandro Peralta

opa blz, não e no principal, seria industrialização, esta funcionado certo, mas tem muitas query para abrir junto com a form
Responder

Gostei + 0

29/02/2016

Marco Antônio

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
Responder

Gostei + 0

29/02/2016

Leandro Peralta

Marco, quase todas, vou usar Query.DisableControls, nunca usei ele vou ver como fica ai volto para falar o resultado
Responder

Gostei + 0

29/02/2016

Leandro Peralta

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;
Responder

Gostei + 0

29/02/2016

Huidemar Costa

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....
Responder

Gostei + 0

29/02/2016

Rafael Bosco

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:
    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;
Responder

Gostei + 0

01/03/2016

Marco Antônio

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;


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
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar