Array
(
)

Locate, Filtro ou consulta SQL ?

Guialberto Soares
   - 22 dez 2005

Olá amigos do forum ...

Estou desenvolvendo um programa para gerenciar BANCA DE JORNIS E REVISTAS, e estou com o seguinte problema.

Vou resumir aqui ...

Tenho a TABELA CONTROLE_EDCOES:
campos:( CODPRODUTO, NUMEDCAO, QTDE ... ETC)

No formulário de VENDAS Uso o ´Locate´ ASSIM:

tblCONTROLE_EDCOES.LOCATE(´CODPRODUTO;NUMEDCAO´, .... )

para verificar se o produto e a edção está cadastrado. para que eu possa vender e atualizar a quantidade em estoque. até então tudo bem, estou desenvolvendo o sistema utilizando Windows XP, AMD 2000+, 353 RAM.

no meu computador tudo bem, mas quando testo no computar do cliente
por ser uma máquina modesta (Windows 98SE, 300MHz, 64 RAM), o
LOCATE, demora um pouco, tornando a venda um processo lento.

Pergunta, alguém saberia com tornar o processo um pouco mais rápido,
sem ter que pedir para o cliente, trocar o PC.

O que devo usar, Locate, Filtro ou consulta SQL e como fazer?

Aguardo a ajuda dos amigos ...


Martins
   - 22 dez 2005

Bem nesse caso, c não disse tb qual a sua base, mas acho q com SQL ficaria mais rápido. Algo mais ou menos assim.

#Código


Query.Close;
Query.Sql.Clear;
Query.Sql.Add(´Select CodProduto, Numeracao, Qtde, etc.. From TblControle_Edcoes where CodProduto = :pCod and Numeraco = :pNumero order by CodProduto´);
Query.Sql.ParamByName(´pCod´).AsString := Edit1.text;
Query.Sql.ParamByName(´pNumero´).AsInteger := StrToInt(Edit2.Text);
Query.Prepare;
Query.Open;


64 de Ram, se o fluxo de informações crescer muito, vai complicar depois.

Boa Sorte!!!


Wiltonfenix
   - 23 dez 2005

Cara, Locate e Filtros são coisas que você deve abolir de seus sistemas.


Guialberto Soares
   - 24 dez 2005

Ok amigos, vou testar depois posto.

Apropósito, estou utilizando o FireBird 1.5


Guialberto Soares
   - 24 dez 2005

valeu amigos ...
funcionou mesmo, fiz o teste e o que era processado em proximadamente
3800 milisegundos passou a ser feito em 15 milissegundo, parece milagre ...

Obdo aos amigos ...
Martins (pela consulta SQL) e vou seguir o conselho do
amigo WiltonFenix, abolindo Locate e Filtros dos meus sistemas.

Até mais ...
[]´ Guiga


Adriano Santos
   - 24 dez 2005


Citação:
valeu amigos ...
funcionou mesmo, fiz o teste e o que era processado em proximadamente
3800 milisegundos passou a ser feito em 15 milissegundo, parece milagre ...

Obdo aos amigos ...
Martins (pela consulta SQL) e vou seguir o conselho do
amigo WiltonFenix, abolindo Locate e Filtros dos meus sistemas.

Até mais ...
[]´ Guiga


Cara, já aboli a um bocado de tempo. Realmente o SQL faz milagres, rsrs...se precisar de uma força no SQL manda as perguntas ai e vamos ver o que fazemos.


Guialberto Soares
   - 30 dez 2005

Valeu mesmo, Adriano Santos ...

Assim que forem surgindo as dúvidas vou colocá-las aqui.

[]´Guiga.


Marco Salles
   - 31 dez 2005

So a título de curiosidade duas perguntas :

1) Pergunta;


Citação:
tblCONTROLE_EDCOES.LOCATE(´CODPRODUTO;NUMEDCAO´, .... )


Amigo Guiga , na sua base de dados CodPrioduto e NumEdcao são Indices
?????

2 Pergunta:

Quando voce faz a consulta , existem algum dbgrid conectado a esta base de dados nesse formulário ???


Andremuller
   - 02 jan 2006

se essa consulta for muito frequente cria uma procedure no banco


Martins
   - 02 jan 2006


Citação:
valeu amigos ...
funcionou mesmo, fiz o teste e o que era processado em proximadamente
3800 milisegundos passou a ser feito em 15 milissegundo, parece milagre ...

Obdo aos amigos ...
Martins (pela consulta SQL) e vou seguir o conselho do
amigo WiltonFenix, abolindo Locate e Filtros dos meus sistemas.

Até mais ...
[]´ Guiga


Blz Guiga, qualquer coisa estamos aqui.

Lembrando tb q a performance de funções como Locate dependem muito de como está estruturada a sua Tabela. Eu pessoalmente utilizo bastante SQL.

Boa Sorte!!!


Marco Salles
   - 02 jan 2006

So a título de curiosidade duas perguntas :

1) Pergunta;

Citação:
tblCONTROLE_EDCOES.LOCATE(´CODPRODUTO;NUMEDCAO´, .... )


Amigo Guiga , na sua base de dados CodPrioduto e NumEdcao são Indices
?????

2 Pergunta:

Quando voce faz a consulta , existem algum dbgrid conectado a esta base de dados nesse formulário ???


Guialberto Soares
   - 03 jan 2006

Olá Marco Salles, respondendo as suas perguntas:

Perguta:
1: CodProduto e NumEdcao são Indices?
Resposta: Sim.

2: Quando voce faz a consulta , existem algum dbgrid conectado a esta base de dados nesse formulário ???
Resposta: Não.


Guialberto Soares
   - 03 jan 2006

O amigo andremuller

Escreveu:
´Se essa consulta for muito frequente cria uma procedure no banco.´

Sim amigo, a consulta é bem frequente, utilizo-a para venda.
só que nunca trabalhei com Procedure, se alguém poder me ajudar a
começar, agradeço ...

Resumindo o processo: em um formulário de venda, atravéz dos campos
CODPRODUTO E NUMEDICAO da tabela CONTROLEEDICOES, localizo o registro e atualizo com a quantidade vendida.

Resumindo
Os controles do formulário, são basicamente 3 Edits (ECodProdto, ECodEdicao, EQtde).

Utilizo o IBExpert e o FireBird 1.5

Espero que eu tenha sido claro.