Re: [delphi-br] Re: URGENTE: Consulta incremental LIKE

2008-05-06 Por tôpico Leandro A. Nunes
use a o 
BETWEEN 









  - Original Message - 
  From: Jorge Ericsson 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Monday, May 05, 2008 3:24 PM
  Subject: Re: [delphi-br] Re: URGENTE: Consulta incremental LIKE


  Na verdade eu andei verificando a minha situação e o like não resolve o meu
  problema.

  Eu preciso usar a claúsula IN para retorna dados entre determinando
  intervalo da seguinte forma:

  select co_agrupado from tabela where co_agrupado in ['A001'..'A999'], onde
  ele precisa me retornar todos os registro dentro desse intervalo tipo:

  A119|B333|C8282|D822
  A113|B323|A003|D8292
  A559|B343|C223|D6552

  Obs: Esse select eu não tó conseguindo montar.

  Valew pessoal

  2008/5/5 carlos alberto do amaral [EMAIL PROTECTED]:

   Olá Jorge,
  
   Bom, pelo menos no exemplo, não vejo a necessidade de utilização
   do upper... Cuidado, dependendo da situação, vc terá que criar um
   índice para a consulta com a função... Seria interessante, gravar já
   com o upper para evitar transtornos...
  
   Quando vc utiliza um select assim: Select co_agrupado from tabela
   where
   upper(co_agrupado) like Vc tem que ter um índice com a função
   upper, correndo o risco de caso não tê-lo, o banco fazer um full scan
   na table... Claro, caso a sua table tenha muitas linhas...
  
   Por que não assim ??
  
   Select co_agrupado from tabela where
   co_agrupado like '%E668%A668%D654%C333%';
  
   Um abraço,
  
   Carlos
  
   P.S.: A primeira vez que vi desta forma o like, foi aqui na lista...
  
   --- Em delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br,
   Jorge Ericsson
   [EMAIL PROTECTED] escreveu
  
   
Olá amigos delphianos,
   
Meio confuso meu problema, mas crio que a solução está apenas na
   monstagem
da minha instrução SQL.
   
Bom, eu estou com um problema de pesquisa incremental genérica pois
   utilizo
uma aplicação que pode retorna informções de 3 bancos Firebird,
   PostgreeSql
e Oracle ao mesmo tempo.
   
Na minha tabela eu possuo campos da seguinte forma:
   
CO_AGRUPADO
A124|B545|C785|D999|E478
*A334|B767|C333|D354|E809
B786|A792|D654|C333|E668
*
Eu gostaria de ao pesquisar por um código tipo E668A334D654C333 -
   sem
informa a barra de divisão - ele me retornasse por exemplo a *2ª e
   3ª
linhas de registro apenas*, ignorando a 1ª linha pois não existem
   nenhuma
informação nela que atenda a solicitação do usuário.
   
Eu tentei da seguinte forma:
   
Select co_agrupado from tabela where
upper(co_agrupado) like upper(E668) or
upper(co_agrupado) like upper(A668) or
upper(co_agrupado) like upper(D654) or
upper(co_agrupado) like upper(C333)
   
Mas, apresenta problemas na montagem do FILTER nos componentes
   usando
Zeos(Firebird), ADO(Oarcle) e DBExpress(PostgreSql) dando erro.
   
Alguém poderia dar uma dica ?
   
Valew pessoal
   
Att,
   
Jorge Ericsson S. Pinheiro
Analista/Projetista de Sistemas
Ericsson Sistemas e Soluções
http://www.jericsson.com.br
61 9227.4785 / 3967.6172
Brasília - DF
   
   
[As partes desta mensagem que não continham texto foram removidas]
   
  
   
  

  -- 
  Att,

  Jorge Ericsson S. Pinheiro
  Analista/Projetista de Sistemas
  Ericsson Sistemas e Soluções
  http://www.jericsson.com.br
  61 9227.4785 / 3967.6172
  Brasília - DF

  [As partes desta mensagem que não continham texto foram removidas]



   

[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] Re: URGENTE: Consulta incremental LIKE

2008-05-05 Por tôpico carlos alberto do amaral
Olá Jorge,

   Bom, pelo menos no exemplo, não vejo a necessidade de utilização 
do upper...   Cuidado, dependendo da situação, vc terá que criar um 
índice para a consulta com a função...  Seria interessante, gravar já 
com o upper para evitar transtornos...

  Quando vc utiliza um select assim:  Select co_agrupado from tabela 
where
 upper(co_agrupado) like   Vc tem que ter um índice com a função 
upper, correndo o risco de caso não tê-lo, o banco fazer um full scan 
na table...  Claro, caso a sua table tenha muitas linhas...

Por que não assim ??

 Select co_agrupado from tabela where
   co_agrupado like '%E668%A668%D654%C333%';



  Um abraço,

   Carlos

P.S.: A primeira vez que vi desta forma o like, foi aqui na lista...


--- Em delphi-br@yahoogrupos.com.br, Jorge Ericsson 
[EMAIL PROTECTED] escreveu

 Olá amigos delphianos,
 
 Meio confuso meu problema, mas crio que a solução está apenas na 
monstagem
 da minha instrução SQL.
 
 Bom, eu estou com um problema de pesquisa incremental genérica pois 
utilizo
 uma aplicação que pode retorna informções de 3 bancos Firebird, 
PostgreeSql
 e Oracle ao mesmo tempo.
 
 Na minha tabela eu possuo campos da seguinte forma:
 
 CO_AGRUPADO
 A124|B545|C785|D999|E478
 *A334|B767|C333|D354|E809
 B786|A792|D654|C333|E668
 *
 Eu gostaria de ao pesquisar por um código tipo E668A334D654C333 - 
sem
 informa a barra de divisão -  ele me retornasse por exemplo a *2ª e 
3ª
 linhas de registro apenas*, ignorando a 1ª linha pois não existem 
nenhuma
 informação nela que atenda a solicitação do usuário.
 
 Eu tentei da seguinte forma:
 
 Select co_agrupado from tabela where
 upper(co_agrupado) like upper(E668) or
 upper(co_agrupado) like upper(A668) or
 upper(co_agrupado) like upper(D654) or
 upper(co_agrupado) like upper(C333)
 
 Mas, apresenta problemas na montagem do FILTER nos componentes 
usando
 Zeos(Firebird), ADO(Oarcle) e DBExpress(PostgreSql) dando erro.
 
 Alguém poderia dar uma dica ?
 
 Valew pessoal
 
 Att,
 
 Jorge Ericsson S. Pinheiro
 Analista/Projetista de Sistemas
 Ericsson Sistemas e Soluções
 http://www.jericsson.com.br
 61 9227.4785 / 3967.6172
 Brasília - DF
 
 
 [As partes desta mensagem que não continham texto foram removidas]





Re: [delphi-br] Re: URGENTE: Consulta incremental LIKE

2008-05-05 Por tôpico Jorge Ericsson
Na verdade eu andei verificando a minha situação e o like não resolve o meu
problema.

Eu preciso usar a claúsula IN para retorna dados entre determinando
intervalo da seguinte forma:

select co_agrupado from tabela where co_agrupado in ['A001'..'A999'], onde
ele precisa me retornar todos os registro dentro desse intervalo tipo:

A119|B333|C8282|D822
A113|B323|A003|D8292
A559|B343|C223|D6552

Obs: Esse select eu não tó conseguindo montar.

Valew pessoal



2008/5/5 carlos alberto do amaral [EMAIL PROTECTED]:

   Olá Jorge,

 Bom, pelo menos no exemplo, não vejo a necessidade de utilização
 do upper... Cuidado, dependendo da situação, vc terá que criar um
 índice para a consulta com a função... Seria interessante, gravar já
 com o upper para evitar transtornos...

 Quando vc utiliza um select assim: Select co_agrupado from tabela
 where
 upper(co_agrupado) like Vc tem que ter um índice com a função
 upper, correndo o risco de caso não tê-lo, o banco fazer um full scan
 na table... Claro, caso a sua table tenha muitas linhas...

 Por que não assim ??

 Select co_agrupado from tabela where
 co_agrupado like '%E668%A668%D654%C333%';

 Um abraço,

 Carlos

 P.S.: A primeira vez que vi desta forma o like, foi aqui na lista...

 --- Em delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br,
 Jorge Ericsson
 [EMAIL PROTECTED] escreveu

 
  Olá amigos delphianos,
 
  Meio confuso meu problema, mas crio que a solução está apenas na
 monstagem
  da minha instrução SQL.
 
  Bom, eu estou com um problema de pesquisa incremental genérica pois
 utilizo
  uma aplicação que pode retorna informções de 3 bancos Firebird,
 PostgreeSql
  e Oracle ao mesmo tempo.
 
  Na minha tabela eu possuo campos da seguinte forma:
 
  CO_AGRUPADO
  A124|B545|C785|D999|E478
  *A334|B767|C333|D354|E809
  B786|A792|D654|C333|E668
  *
  Eu gostaria de ao pesquisar por um código tipo E668A334D654C333 -
 sem
  informa a barra de divisão - ele me retornasse por exemplo a *2ª e
 3ª
  linhas de registro apenas*, ignorando a 1ª linha pois não existem
 nenhuma
  informação nela que atenda a solicitação do usuário.
 
  Eu tentei da seguinte forma:
 
  Select co_agrupado from tabela where
  upper(co_agrupado) like upper(E668) or
  upper(co_agrupado) like upper(A668) or
  upper(co_agrupado) like upper(D654) or
  upper(co_agrupado) like upper(C333)
 
  Mas, apresenta problemas na montagem do FILTER nos componentes
 usando
  Zeos(Firebird), ADO(Oarcle) e DBExpress(PostgreSql) dando erro.
 
  Alguém poderia dar uma dica ?
 
  Valew pessoal
 
  Att,
 
  Jorge Ericsson S. Pinheiro
  Analista/Projetista de Sistemas
  Ericsson Sistemas e Soluções
  http://www.jericsson.com.br
  61 9227.4785 / 3967.6172
  Brasília - DF
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 

 




-- 
Att,

Jorge Ericsson S. Pinheiro
Analista/Projetista de Sistemas
Ericsson Sistemas e Soluções
http://www.jericsson.com.br
61 9227.4785 / 3967.6172
Brasília - DF


[As partes desta mensagem que não continham texto foram removidas]