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/ -- TIP 4: No hagas 'kill -9' a postmaster