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/ -- TIP 5: ¿Has leído nuestro extenso FAQ? http://www.postgresql.org/docs/faqs.FAQ.html