Skip site navigation (1) Skip section navigation (2)

Re: like no funciona

From: suso <jlcubas(at)terra(dot)es>
To:
Cc: PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: like no funciona
Date: 2009-11-28 16:14:12
Message-ID: 4B114C54.8030203@terra.es (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Éstos son los datos de ese campo:
ALTER TABLE pacientes ADD COLUMN apell character varying(40);
ALTER TABLE pacientes ALTER COLUMN apell SET STORAGE EXTENDED;
ALTER TABLE pacientes ALTER COLUMN apell SET NOT NULL;

Aunque estoy por darme por vencido, y ejecutar la consulta desde vb6, que sí me funciona 
correctamente,sin necesidad de llamar a la function de postgres, me devuelve el número de 
registros mediante un recordset obtenido mediante el like, no sé, lo veo "complicado" por no 
decir otra cosa:(
Aunque me gustaría saber más que nada, el por qué no funciona como debe, he consultado en el 
manual, varias páginas(bastantes, hasta he visto casos ligeramente parecidos, en los que han 
intervenido, hace algunos años, Edwin y/o Alvaro creo recordar haber visto), y me he guiado por 
la infinidad de páginas que he visto, pero no es correcto (como yo lo tengo), pq no funciona...
Gracias
Un saludo
Suso

> El día 28 de noviembre de 2009 11:50, suso <jlcubas(at)terra(dot)es> escribió:
>> 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"
>>
> 
> probá
> 
> LIKE $e$'$e$ || apelli || $e$'%$e$;
>>> 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

pgsql-es-ayuda by date

Next:From: Cesar EricesDate: 2009-11-28 16:50:46
Subject: Re: like no funciona
Previous:From: susoDate: 2009-11-28 15:57:20
Subject: Re: like no funciona

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group