Re: [delphi-br] Re: URGENTE: Consulta incremental LIKE
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
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
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]