Re: like no funciona

From: suso <jlcubas(at)terra(dot)es>
To: Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com>
Cc: PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: like no funciona
Date: 2009-11-28 14:50:30
Message-ID: 4B1138B6.1070201@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Este es el campo por el cual hace la busqueda, no debe devoler registros como tal, sino la
cantidad de registros que empiecen por la letra "x", es letra es la que le paso a la function
desde mi programa, es decir:

select cont_reg( '" & cadena_que_le_paso & "')

cadena_que_le_paso procede de un textbox, que normalmente será la inicial del campo apellido,
puede ser 'P', puede ser 'S', etc, si hay mas de 500 registros, empezaría por esa letra+ una
segunda letra, o sea, 'PE' ó 'PI', o la combinación que sea.

estos son los datos en los que debe mirar, en el campo apell
"PIPOS"
"UNO"
"LOPEZ"
"POPO"
"UNO"
"PEPET"
"AFONSO"
"JOSEFA"
"SANCHA"
"ESTEVEZ"
"BUCK"
"BELLON"
"GARCIA"

> El día 28 de noviembre de 2009 11:28, suso <jlcubas(at)terra(dot)es> escribió:
>> Hola Emanuel
>>> 2009/11/27 suso <jlcubas(at)terra(dot)es>:
>>>> Hola de nuevo, por favor, a ver si alguien me puede decir pq no funciona
>>>> ésta consulta, incluso si la ejecuto dede pgadmin, postgres 8.4 y windows
>>>> xp.
>>>>
>>>> select count(*) into devuel from clientes where apell like '" || apelli
>>>> ||
>>>> "%'
>>>>
>>>> select count(*) into devuel from clientes where apell like 'P%'
>>>>
>>>> Esto si funciona, si hago su "equivalente" desde vb6 va sin problemas.
>>>> Otros colisteros me han dicho variantes, pero ninguna va.
>>>> por ejemplo:
>>>>
>>>> select count(*) into devuel from clientes where apell like '" & apelli &
>>>> "%'
>>>> select count(*) into devuel from clientes where apell like ' & apelli &
>>>> %'
>>>> select count(*) into devuel from clientes where apell like ' apelli & %'
>>>> Este tipo de cosas
>>>>
>>> Si apelli es una columna, hay algo mal en la composición de la expresión.
>> apelli es una valor que le paso a la function, voy a poner el código
>> completo
>>
>> CREATE OR REPLACE FUNCTION cont_reg(apelli character varying)
>> RETURNS integer AS
>> $BODY$
>>
>> DECLARE
>> devuel integer;
>> BEGIN
>> if apelli is not null THEN
>> select count(*) into devuel from pacientes where apell like '" || apelli ||
>> "%';
>
> la cadena contiene ' ?
>
>
>
>> end if;
>>
>> if found then
>> return devuel;
>> else
>> return 0;
>> end if;
>> END;
>>
>> $BODY$
>> LANGUAGE 'plpgsql' VOLATILE
>> COST 100;
>> ALTER FUNCTION cont_reg(character varying) OWNER TO postgres;
>>> Podrías mostar el registro que supuestamente te debería devolver?
>
> Aún esperamos el registro ;)
>
>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Emanuel Calvo Franco 2009-11-28 15:03:33 Re: like no funciona
Previous Message Emanuel Calvo Franco 2009-11-28 14:35:25 Re: like no funciona