Consulta diferenciada...
Estou usando em um edit do meu formulário a seguite consulta:
Query.Close;
Query.SQL.Clear;
Query.SQL.Add(´Select * from Mercadorias WHERE CodBarras LIKE´ + ´´´´+´¬´+ Edit1.Text +´¬´+´´´´);
Query.Open;
E assim toda vez que digito o código de barras de uma mercadoria ele busca para mim. Até aí tudo OK. O grande problema acontece quando o código de barras é gerado por uma balança. Nesse tipo de código de barras só me interessam os seguintes dígitos: 2º, 3º, 4º, 5º, 6º e 7º. O primeiro dígito e os demais não tem importância para mim, pois não ajudam na localização.
Então o que desejo é condicionar o edit, para que toda vez que o código de barras começar por 7, usar todos os dígitos para realizar a consulta e, se começar por 2, utilizar somente do 2º ao 7º dígito para realizar a consulta.
Se alguém puder dar-me uma mãozinha com este problema, conte com os meus sinceros agradecimentos.
Query.Close;
Query.SQL.Clear;
Query.SQL.Add(´Select * from Mercadorias WHERE CodBarras LIKE´ + ´´´´+´¬´+ Edit1.Text +´¬´+´´´´);
Query.Open;
E assim toda vez que digito o código de barras de uma mercadoria ele busca para mim. Até aí tudo OK. O grande problema acontece quando o código de barras é gerado por uma balança. Nesse tipo de código de barras só me interessam os seguintes dígitos: 2º, 3º, 4º, 5º, 6º e 7º. O primeiro dígito e os demais não tem importância para mim, pois não ajudam na localização.
Então o que desejo é condicionar o edit, para que toda vez que o código de barras começar por 7, usar todos os dígitos para realizar a consulta e, se começar por 2, utilizar somente do 2º ao 7º dígito para realizar a consulta.
Se alguém puder dar-me uma mãozinha com este problema, conte com os meus sinceros agradecimentos.
Pro-luck
Curtidas 0
Respostas
Motta
03/11/2004
[quote:de35816e8a=´Pro-Luck´]Estou usando em um edit do meu formulário a seguite consulta:
Query.Close;
Query.SQL.Clear;
Query.SQL.Add(´Select * from Mercadorias WHERE CodBarras LIKE´ + ´´´´+´¬´+ Edit1.Text +´¬´+´´´´);
Query.Open;
E assim toda vez que digito o código de barras de uma mercadoria ele busca para mim. Até aí tudo OK. O grande problema acontece quando o código de barras é gerado por uma balança. Nesse tipo de código de barras só me interessam os seguintes dígitos: 2º, 3º, 4º, 5º, 6º e 7º. O primeiro dígito e os demais não tem importância para mim, pois não ajudam na localização.
Então o que desejo é condicionar o edit, para que toda vez que o código de barras começar por 7, usar todos os dígitos para realizar a consulta e, se começar por 2, utilizar somente do 2º ao 7º dígito para realizar a consulta.
Se alguém puder dar-me uma mãozinha com este problema, conte com os meus sinceros agradecimentos.[/quote:de35816e8a]
Nunca trabalhei com cod. barras, mas fazer pesquisa com like é ruim pois se perdem os indices e este é tipo da pesquisa que tem ser rápida , senão a fila do caixa creeeeesce , melhor criar um 1º digito fajuto e pesquisar sempre pelo indice.
Query.Close;
Query.SQL.Clear;
Query.SQL.Add(´Select * from Mercadorias WHERE CodBarras LIKE´ + ´´´´+´¬´+ Edit1.Text +´¬´+´´´´);
Query.Open;
E assim toda vez que digito o código de barras de uma mercadoria ele busca para mim. Até aí tudo OK. O grande problema acontece quando o código de barras é gerado por uma balança. Nesse tipo de código de barras só me interessam os seguintes dígitos: 2º, 3º, 4º, 5º, 6º e 7º. O primeiro dígito e os demais não tem importância para mim, pois não ajudam na localização.
Então o que desejo é condicionar o edit, para que toda vez que o código de barras começar por 7, usar todos os dígitos para realizar a consulta e, se começar por 2, utilizar somente do 2º ao 7º dígito para realizar a consulta.
Se alguém puder dar-me uma mãozinha com este problema, conte com os meus sinceros agradecimentos.[/quote:de35816e8a]
Nunca trabalhei com cod. barras, mas fazer pesquisa com like é ruim pois se perdem os indices e este é tipo da pesquisa que tem ser rápida , senão a fila do caixa creeeeesce , melhor criar um 1º digito fajuto e pesquisar sempre pelo indice.
GOSTEI 0
Pro-luck
03/11/2004
Como devo fazer isso???
Brigadão pela força...
Brigadão pela força...
GOSTEI 0
Motta
03/11/2004
Não sei como isto de cod. barras funciona só disse que uma pesquisa do tipo
select *
from tabela
where coluna like ´¬12345¬´
gera um ´full table scan´
mesmo que coluna tenha indice, isto pode gerar uma demora e um gargalo no sistema, principalmente que é uma pesquisa feita trocentas vezes ao dia.
pq vc ignora o 1º dígito nas etiquetas geradas , pq não gera um 0 ou 1 ?!
e pesquisa com este número ?
select *
from tabela
where coluna like ´¬12345¬´
gera um ´full table scan´
mesmo que coluna tenha indice, isto pode gerar uma demora e um gargalo no sistema, principalmente que é uma pesquisa feita trocentas vezes ao dia.
pq vc ignora o 1º dígito nas etiquetas geradas , pq não gera um 0 ou 1 ?!
e pesquisa com este número ?
GOSTEI 0
Pro-luck
03/11/2004
Aí galera...
Um dos colaboradores do Fórum deu-me uma luz no que eu procurava e passou-me o seguinte código:
Query.Close;
Query.SQL.Clear;
Query.SQL.Add(´Select * from Mercadorias WHERE CodBarras = :codigo´);
if Edit1.Text[1]=´2´ then
Query1.ParamByName(´codigo´).AsString:= Copy(Edit1.Text, 2, 6)
else Query1.ParamByName(´codigo´).AsString:= Edit1.Text;
Query.Open;
E atendeu exatamente da forma como eu pensava...
Brigadão Vini...
Um dos colaboradores do Fórum deu-me uma luz no que eu procurava e passou-me o seguinte código:
Query.Close;
Query.SQL.Clear;
Query.SQL.Add(´Select * from Mercadorias WHERE CodBarras = :codigo´);
if Edit1.Text[1]=´2´ then
Query1.ParamByName(´codigo´).AsString:= Copy(Edit1.Text, 2, 6)
else Query1.ParamByName(´codigo´).AsString:= Edit1.Text;
Query.Open;
E atendeu exatamente da forma como eu pensava...
Brigadão Vini...
GOSTEI 0
Pro-luck
03/11/2004
SOBE
GOSTEI 0