PostgreSQL - Funcion que devuelva congunto de datos o recordset

 
Vista:

Funcion que devuelva congunto de datos o recordset

Publicado por Yoel Mc Lennan (3 intervenciones) el 14/02/2007 18:18:36
alguna ida de como hacer para devolver un cursor lleno (no el nombre del cursor)
en una función ? para no tener que hacer fetch all in ... en .net o vb? gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 11
Ha aumentado su posición en 3 puestos en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

RE:Funcion que devuelva congunto de datos o record

Publicado por guillermo arias (33 intervenciones) el 15/06/2007 20:40:58
CREATE OR REPLACE FUNCTION busca_estudiantes() RETURNS SETOF RECORD AS
> '

> DECLARE

> registro RECORD;

> BEGIN

> FOR registro IN SELECT nomb, apell, edad FROM estudiantes

> LOOP

> RETURN NEXT registro;

> END LOOP;

> RETURN;

> END;

> ' language 'plpgsql';
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Funcion que devuelva congunto de datos o recordset

Publicado por dark (1 intervención) el 03/10/2011 16:14:12
En vb6 usa rs.nextrecordset
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Funcion que devuelva congunto de datos o recordset

Publicado por martin (1 intervención) el 20/10/2011 17:33:33
CREATE OR REPLACE FUNCTION f_ejm_tra()
RETURNS SETOF "record" as
$BODY$
DECLARE
r RECORD;
fila integer;
parimpar varchar;
BEGIN
fila:=0;
FOR r IN


SELECT fila,parimpar,cod as tra_codtra,dni as tra_dnitra,paterno as tra_pattra,materno as tra_mattra,nombres as tra_nomtra from trabajador order by paterno,materno,nombres limit 30

LOOP
fila:=fila+1;
r.fila:=fila;
if(mod(r.tra_codtra::integer,2)=0) then
r.parimpar:='par';
else
r.parimpar:='impar';
end if;
RETURN NEXT r;
END LOOP;
RETURN;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

SELECT*FROM f_ejm_tra() AS ("nose" int,"parimpar" varchar ,"tra_codtra" varchar,"tra_dnitra" varchar,"tra_pattra" varchar,"tra_mattra" varchar,"tra_nomtra" varchar);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar