Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > PostgreSQL

Respuesta
 
Herramientas Desplegado
Antiguo 25-abr-2008, 11:08   #1 (permalink)
xtstgo ha deshabilitado el karma
 
Fecha de Ingreso: octubre-2005
Mensajes: 16
retorno record especifico

holas;

tengo un duda de como crear una funcion q me regrese las filas pero no quiero retornar todas las columnas de la tabla. he tratado de hacerlo con record pero me indica que debo señalar cuales seran las columnas retornadas.


Código PHP:
CREATE OR REPLACE FUNCTION p_accesousuario (par_usu_id charpar_usu_pas varcharpar_age_id charRETURNS record AS
$body$
declare
    
v_usuario record;
    
v_dummy  char(1);
BEGIN

    
/*------------------------------------------------------------------*/  
    /* Validacion de la Agencia                                         */
    /*------------------------------------------------------------------*/    
    
if exists (
               
select age_id
               from sc_agente
               where age_id 
par_age_idthen
                   
       
/*---------------------------------------------------------------*/  
       /* Rescate de los datos del usuario                          */
       /*---------------------------------------------------------------*/
       
select pco_idrol_idusu_nombreusu_paternousu_materno
       into v_usuario
       from sc_usuario
       where usu_id 
par_usu_id
        
and  age_id par_age_id;
       
       if 
not FOUND then    
          raise notice 
'No existe USUARIO %'par_usu_id;
       else
          if 
par_usu_pas <> v_usuario.usu_pas_md5  then                   
             raise notice 
'Clave Incorrecta ';
             
end if;
       
end if;     
    else    
        
raise notice 'No existe AGENCIA %'par_age_id;
    
end if;              

    return 
v_usuario;

END;
$body$
LANGUAGE 'plpgsql'
como lo pouedo hacer??.

de antemono gracias.
xtstgo está desconectado   Responder Citando
Antiguo 28-abr-2008, 03:50   #2 (permalink)
seyko ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2007
Mensajes: 975
Re: retorno record especifico

Esta bien, pero debes señalar las columnas retornadas:

select *
from p_accesousuario (par_usu_id char, par_usu_pas varchar, par_age_id char) as
(pco_id TIPO_DATO, rol_id, usu_nombre TIPO_DATO, usu_paterno TIPO_DATO, usu_materno TIPO_DATO)

Salu2
seyko está desconectado   Responder Citando
Antiguo 28-abr-2008, 08:58   #3 (permalink)
xtstgo ha deshabilitado el karma
 
Fecha de Ingreso: octubre-2005
Mensajes: 16
Re: retorno record especifico

gracias por la respuesta, pero me surge una duda hay alguna manera en que me pueda retornar lo que deseo sin necesidad de especificar el nombre y el tipo de los datos q deseo retornar, lo pregunto porque si es asi cada vez q modifique la funcion tenfria que tambien modificar el cliente que llama a la funcion.

Gracias. XT
xtstgo está desconectado   Responder Citando
Antiguo 28-abr-2008, 10:13   #4 (permalink)
seyko ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2007
Mensajes: 975
Re: retorno record especifico

Puedes hacerlo creando un tipo y retornando ese tipo.
Por defecto, en postgres, se crea un tipo por tabla.
El tener que especificar los campos y su tipo, tiene logica, porque si no le dices como se llaman los campos y sus tipos, como te refieres a ellos?

Un saludo
seyko está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 01:21.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93