Correcto amigo muchas gracias lo lei pero no sale esta casi igual solo que en 
el ejemplo retorna varios cursores yo solo retorno uno
asi, pero al ejecutar me sale 
{Npgsql.NpgsqlException:cursor "<unnamed portal 1>" does not existSeverity: 
ERRORCode: 34000
 
no se que puede estar mal
 
 
public DataSet recuperaMayor()
{
NpgsqlCommand comando = new NpgsqlCommand("prueba", cnpg); 

comando.CommandType = CommandType.StoredProcedure;
return DevolverDataset(comando);
}
 
public DataSet DevolverDataset(NpgsqlCommand comando) 
{
NpgsqlDataAdapter da = new NpgsqlDataAdapter(comando);
DataSet ds = null;
try
{
cnpg.Open();
ds = new DataSet();
da.Fill(ds);
}
catch (Exception ex)
{}
finally
{
da.Dispose();
cnpg.Dispose();
}
return ds;
}
y la funcion la tengo asi
REATE OR REPLACE FUNCTION prueba() RETURNS refcursor AS $$DECLARE cMayor 
refcursor;BEGIN open cMayor for      select * from asicab;        RETURN 
cMayor;END;$$LANGUAGE 'plpgsql';
> Date: Tue, 25 Nov 2008 17:20:35 +0000> From: [EMAIL PROTECTED]> To: [EMAIL 
> PROTECTED]> Subject: Re: [pgsql-es-ayuda] Ayuda con funcion y Punto Net> CC: 
> pgsql-es-ayuda@postgresql.org> > 2008/11/25 Fernando Siguenza <[EMAIL 
> PROTECTED]>:> > si lo probe y justo es eso que no me funciona que no se como 
> llamar a esa> > funcion o que podria hacer para que funciones....> >> > 
> Gracias> > Leiste esto:> > 
> http://npgsql.projects.postgresql.org/docs/manual/UserManual.html> > Por ahi 
> puede darte una orientacion o no?> > slds.> J> > > >> >> Date: Tue, 25 Nov 
> 2008 17:04:50 +0000> >> From: [EMAIL PROTECTED]> >> To: [EMAIL PROTECTED]> >> 
> Subject: Re: [pgsql-es-ayuda] Ayuda con funcion y Punto Net> >> CC: 
> pgsql-es-ayuda@postgresql.org> >>> >> 2008/11/25 Fernando Siguenza <[EMAIL 
> PROTECTED]>:> >> > Si amigo seria este> >> > Si seria este> >> > 
> comando.Parameters.Add(new NpgsqlParameter("@AgeCod",> >> > 
> NpgsqlDbType.Varchar,> >> > 3)).Value = agecod;> >> >> >> > pero esto es para 
> agregar parametros a la funcion y no para decir que> >> > parametros me va a 
> retornar la funcion???> >> >> >> > Mi intencion es evitar tener que crear un 
> tipo con las columnas que> >> > retorna> >> > una funcion y evitar esto> >> > 
> create type tPrueba (asiagecod varchar,asifec date,asidoc varchar,asinum> >> 
> > varchar,saldo numeric)> >>> >> Probaste si asi funciona???> >>> >> Porque 
> es diferente probar desde PgAdmin a estar trabajando con el> >> Objeto que 
> conversa con PG .. supongo que el se encargara de ese tipo> >> de 
> situaciones...> >>> >> Prueba ejecutando la consulta con los parametros y 
> llenando un dataSet> >> y despues recorrelo ... o sea declara tu funcion - 
> parametrizala y> >> trata de obtener valores...> >>> >> Slds.> >> J> >> Ps : 
> Buscaste en historico de la Lista???> >>> >> > y en la funcion poner esto> >> 
> >> >> > CREATE OR REPLACE FUNCTION prueba() RETURNS SETOF tPrueba AS $$> >> 
> >> >> > ya que sino me tocaria para cada funcion en la que deseo tener un> >> 
> > resultado> >> > de varias tablas crear un tipo.> >> >> >> > Saludos> >> >> 
> >> >> >> >> Date: Tue, 25 Nov 2008 16:43:27 +0000> >> >> From: [EMAIL 
> PROTECTED]> >> >> To: [EMAIL PROTECTED]> >> >> Subject: Re: [pgsql-es-ayuda] 
> Ayuda con funcion y Punto Net> >> >> CC: pgsql-es-ayuda@postgresql.org> >> 
> >>> >> >> 2008/11/25 Fernando Siguenza <[EMAIL PROTECTED]>:> >> >> > Gracias 
> por responder, eso si lo tengo claro lo hago de esta forma> >> >> > 
> NpgsqlCommand comando = new NpgsqlCommand("prueba", cnpg);> >> >> > 
> comando.CommandType = CommandType.StoredProcedure;> >> >> >> >> >> > Pero el 
> problema es que para que funcione desde pgadmin tengo que> >> >> > poner> >> 
> >> > que> >> >> > tipo de datos me retirna la funcion> >> >> > select * from 
> prueba() as (asiagecod varchar,asifec date,asidoc> >> >> > varchar,asinum 
> varchar,saldo numeric);> >> >>> >> >> >> >> >> > Ya que si lo llamo solo como 
> select * from prueba()> >> >>> >> >> Claro porque la funcion esta definida 
> con parametros...> >> >>> >> >> > me da este error, ERROR: a column 
> definition list is required for> >> >> > functions> >> >> > returning 
> "record"> >> >> > Entonces en pgadmin ya resolvi esto con el as (asiagecod> 
> >> >> > varchar,asifec> >> >> > date,asidoc varchar,asinum varchar,saldo 
> numeric);> >> >> >> >> >> > Ahora como debo indicar desde punto net algo asi 
> probe y no me> >> >> > funciono> >> >> > NpgsqlCommand comando = new 
> NpgsqlCommand("prueba as (asiagecod> >> >> > varchar,asifec date,asidoc 
> varchar,asinum varchar,saldo numeric)",> >> >> > cnpg);> >> >>> >> >> Y 
> NpgsqlCommand no tiene una propiedad algo asi como Param??? o algo> >> >> por 
> el estilo ... porque son sentencias separadas una para declarar> >> >> que es 
> un Store Procedure o funcion y otra para seteo de parametros..> >> >> dale 
> una vuelta por ese lado.> >> >>> >> >> Slds.> >> >>> >> >> >> >> >> > espero 
> haberme explicado un poco mas muchas gracias> >> >> >> >> >> >> Date: Tue, 25 
> Nov 2008 16:28:36 +0000> >> >> >> From: [EMAIL PROTECTED]> >> >> >> To: 
> [EMAIL PROTECTED]> >> >> >> Subject: Re: [pgsql-es-ayuda] Ayuda con funcion y 
> Punto Net> >> >> >> CC: pgsql-es-ayuda@postgresql.org> >> >> >>> >> >> >> 
> 2008/11/25 Fernando Siguenza <[EMAIL PROTECTED]>:> >> >> >> > Amigos tengo un 
> problema para llamar a una funcion desde c#, tengo> >> >> >> > una> >> >> >> 
> > funcion que reporta un grupo de registros algo asi:> >> >> >> >> >> >> >> > 
> CREATE OR REPLACE FUNCTION prueba() RETURNS SETOF record AS $$> >> >> >> > 
> DECLARE> >> >> >> > cMayor record;> >> >> >> > BEGIN> >> >> >> > for cMayor 
> in select> >> >> >> > 
> asicab.asiagecod,asicab.asifec,asicab.asidoc,asicab.asinum,0.00000> >> >> >> 
> > as> >> >> >> > saldo> >> >> >> > FROM asicab ORDER BY asifec> >> >> >> > 
> LOOP> >> >> >> > RETURN NEXT cMayor;> >> >> >> > END LOOP;> >> >> >> > 
> RETURN;> >> >> >> > END;> >> >> >> > $$> >> >> >> > LANGUAGE 'plpgsql';> >> 
> >> >> >> >> >> >> > desde pgadmin le llamo de esta forma> >> >> >> > select * 
> from prueba() as (asiagecod varchar,asifec date,asidoc> >> >> >> > 
> varchar,asinum varchar,saldo numeric);> >> >> >> >> >> >> >> > Y en donde 
> defino que columnas son las que retorna dicha funcion y> >> >> >> > funciona> 
> >> >> >> > todo muy bien,> >> >> >> > ahora mi dilema es como hago para 
> llamar a esta funcion desde> >> >> >> > punto> >> >> >> > net???> >> >> >> >> 
> >> >> >> > Espero me puedan ayudar> >> >> >> >> >> >> >> > 
> ________________________________> >> >> >> > Windows Live Hotmail now works 
> up to 70% faster. Sign up today.> >> >> >>> >> >> >>> >> >> >> Depende del 
> objeto con que te estes conectando con .Net,> >> >> >> lamentablemente ahora 
> no estoy con G y C# sino te lo hubiese> >> >> >> enviado,> >> >> >> pero la 
> logica es siempre la misma tienen un Command o algo asi que> >> >> >> tiene 
> la propiedad de ejecutar sql ya sea una funcion o una consulta> >> >> >> 
> generalmente permiten agregar parametros para hacer esto dinamico...> >> >> 
> >> despues cuando recuperas se hace en un DataTable o un DataSet... con> >> 
> >> >> los nombres de los campos que estas consultando ....> >> >> >>> >> >> 
> >> Investiga del objeto coneccion que estas usando de seguro el te> >> >> >> 
> resolvera tus dudas.> >> >> >>> >> >> >> Slds.> >> >> >> J.> >> >> >>> >> >> 
> >>> >> >> >> --> >> >> >> Cumprimentos> >> >> >> jchavez> >> >> >> linux User 
> #397972 on http://counter.li.org/> >> >> >> >> >> >> >> >> > 
> ________________________________> >> >> > Color coding for safety: Windows 
> Live Hotmail alerts you to> >> >> > suspicious> >> >> > email. Sign up 
> today.> >> >>> >> >>> >> >>> >> >> --> >> >> Cumprimentos> >> >> jchavez> >> 
> >> linux User #397972 on http://counter.li.org/> >> >> >> >> >> >> >> >> >> > 
> ________________________________> >> > Stay up to date on your PC, the Web, 
> and your mobile phone with Windows> >> > Live> >>> >>> >>> >> --> >> 
> Cumprimentos> >> jchavez> >> linux User #397972 on http://counter.li.org/> >> 
> >> > ________________________________> > Stay up to date on your PC, the Web, 
> and your mobile phone with Windows Live> > > > -- > Cumprimentos> jchavez> 
> linux User #397972 on http://counter.li.org/> --> TIP 3: Si encontraste la 
> respuesta a tu problema, publícala, otros te lo agradecerán
_________________________________________________________________
See how Windows® connects the people, information, and fun that are part of 
your life
http://clk.atdmt.com/MRT/go/119463819/direct/01/

Responder a