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