Locate, Filtro ou consulta SQL ?
22/12/2005
0
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 ...
Guialberto Soares
Posts
22/12/2005
Martins
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!!!
23/12/2005
Wiltonfenix
24/12/2005
Guialberto Soares
Apropósito, estou utilizando o FireBird 1.5
24/12/2005
Guialberto Soares
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
24/12/2005
Adriano Santos
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.
30/12/2005
Guialberto Soares
Assim que forem surgindo as dúvidas vou colocá-las aqui.
[]´Guiga.
31/12/2005
Marco Salles
1) Pergunta;
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 ???
02/01/2006
Andremuller
02/01/2006
Martins
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!!!
02/01/2006
Marco Salles
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 ???
03/01/2006
Guialberto Soares
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.
03/01/2006
Guialberto Soares
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.
Clique aqui para fazer login e interagir na Comunidade :)