RE: Ayuda con una Funcion plpgsql

From: Juan Ramirez <juanrmiranda(at)hotmail(dot)com>
To: PostGreSQL Lista de Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Ayuda con una Funcion plpgsql
Date: 2008-10-13 18:26:12
Message-ID: BAY104-W3568B266EB95A1338127CED1360@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Fernando,

respecto a tu otra consulta... pasarle un dataTable a una función postGre, no entiendo tu objetivo... incluso, no lo veo funcional..... por ello te sugiero nos contés toda "la novela" [más información] de tu problema, talvéz te damos ideas de otra forma de lograr lo que quieres...

Saludos.

Juan Ramírez

From: juanrmiranda(at)hotmail(dot)com
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: RE: [pgsql-es-ayuda] Ayuda con una Funcion plpgsql
Date: Mon, 13 Oct 2008 16:19:04 -0100

Lo imaginaba..... sólo que no me quería adelantar XD.....tu función está mal creada...


Has el siguiente cambio en tu función.... declarara y compilala según la siguiente forma

CREATE OR REPLACE FUNCTION "master"."AsientosDetalleElimina" (varchar,varchar, varchar) RETURNS boolean AS $$
BEGIN
delete from asidet where asiagecod=$1 and asidoc=$2 and asinum=$3;
return true;
END;
$$
LANGUAGE 'plpgsql';



ahora ejecuta lo que te dije antes...

select AsientosDetalleElimina('central','egreso','10');

Pero te aclaro, ese es un ejemplo, por favor cambia los datos; central, egreso, 10; por valores que existan en tu base de datos....

Pero te sugiero Encarecidamente que hagas las pruebas, valga la redundancia, en una base de datos DE PRUEBA


Otro dato, no se porque el campo asinum lo declaras como VarChar.... verifica tu base de datos. pues "creo" que es un campo númerico, de ser así cambia la declaración de la función por el tipo de datos correcto

Juan Ramírez

From: fsigu(at)hotmail(dot)com
To: juanrmiranda(at)hotmail(dot)com
Subject: RE: [pgsql-es-ayuda] Ayuda con una Funcion plpgsql
Date: Mon, 13 Oct 2008 16:52:58 +0000

Gracias amigo por responder y disculpa mi ignorancia pero cuano ponso la sentencia que me indicas

select AsientosDetalleElimina('central','egreso',10);

Me sale un error
ERROR: function asientosdetalleelimina(unknown, unknown, unknown) does not exist

Pero la funcion si esta creada y todo que puede ser????

From: juanrmiranda(at)hotmail(dot)com
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: RE: [pgsql-es-ayuda] Ayuda con una Funcion plpgsql
Date: Mon, 13 Oct 2008 14:39:52 -0100

Lo siento Fernando, siento no haber sido claro con mi propuesta, pero aquí te lo digo,
En el pgAdmin en la herramienta QueryTool, ahí escribe la ejecución de tu función, tal cual la puse en el otro ejemplo del Command, así;

select AsientosDetalleElimina('central','egreso',10);

ejecuta ese Query en la herramienta del pgAdmin, ahí probarás la ejecución de tu función....

Juan Ramírez

From: fsigu(at)hotmail(dot)com
To: juanrmiranda(at)hotmail(dot)com
Subject: RE: [pgsql-es-ayuda] Ayuda con una Funcion plpgsql
Date: Mon, 13 Oct 2008 15:27:20 +0000

Amigo muchas gracias por responder pero como puedo jecutar la funcion desde pgadmin, lo que si no tengo errores al crearla no me da errores de sintaxis, pero no se como probarla...

From: juanrmiranda(at)hotmail(dot)com
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: RE: [pgsql-es-ayuda] Ayuda con una Funcion plpgsql
Date: Mon, 13 Oct 2008 14:06:49 -0100

Buenos días desde El Salvador colegas de PostGreSQL.

Este es mi primer correo a todos los de la Lista, saludos;

Fernando,

Yo al igual que tu, no encuentro cuál es el error.... por ello te diré un par de cosas;

Pregunto ¿Ejecutaste tu función sin problemas, fuera de .Net?. es decir, la probaste ejecutandola desde la consola o desde el pgAdmin ?¿

Y, si cambias la forma en como ejecutas tu función desde .Net.... si le pasas el Query al Command tal cual lo hicieras en la consola.... algo así:

QueryCommand = New NpgsqlCommand
QueryCommand.Connection = tu_conexion_postgre
QueryCommand.CommandText = "select AsientosDetalleElimina(" & agencia & "," & tipdoc &"," & numero & ");"
QueryCommand.ExecuteNonQuery()

Nuevamente saludos desde El Salvador

Juan Ramírez

From: fsigu(at)hotmail(dot)com
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: [pgsql-es-ayuda] Ayuda con una Funcion plpgsql
Date: Mon, 13 Oct 2008 14:32:39 +0000

Amigos como estan , necesito su ayuda estoy empezando con lo de las funciones en postgree y punto net, y tengo un problema con una no se si me pueden ayudar

cuando ejecuto la funcion desde c# me sale este error ERROR: 42601: syntax error at or near ")"

esta es la funcion que utilizo:

CREATE OR REPLACE FUNCTION "master"."AsientosDetalleElimina" (vAgeCod varchar,vAsiDoc varchar, vAsiNum varchar) RETURNS boolean AS $$
BEGIN
delete from asidet where asiagecod=vAgeCod and asidoc=vAsiDoc and asinum=vAsiNum;
return true;
END;
$$
LANGUAGE 'plpgsql';

Desde punto net le llamo asi a la funcion.

comando = new NpgsqlCommand("AsientosDetalleElimina)", cnpg);
comando.CommandType = CommandType.StoredProcedure;
comando.Parameters.Add(new NpgsqlParameter("@age", NpgsqlDbType.Varchar, 3)).Value = agencia;
comando.Parameters.Add(new NpgsqlParameter("@doc", NpgsqlDbType.Varchar, 2)).Value = tipdoc;
comando.Parameters.Add(new NpgsqlParameter("@num", NpgsqlDbType.Varchar, 7)).Value = numero;
comando.Parameters[0].Direction = ParameterDirection.Input;
comando.Parameters[1].Direction = ParameterDirection.Input;
comando.Parameters[2].Direction = ParameterDirection.Input;
comando.ExecuteNonQuery();

y justo en la ultima linea me da el error.

Otra duda que tengo puedo mandar como parametro un datatable completo y recibirlo como cursor en una funcion de postgree, para manipularlo desde la funcion. Ojala y me puedan ayudar

Get Windows Live and get whatever you need, wherever you are. Start here.

Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy! Try it!

Get Windows Live and get whatever you need, wherever you are. Start here.

Connect to the next generation of MSN Messenger Get it now! Gracia

Get more from your digital life. Find out how.

Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy! Try it!

Discover the new Windows Vista Learn more!

_________________________________________________________________
News, entertainment and everything you care about at Live.com. Get it now!
http://www.live.com/getstarted.aspx

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Rodriguez Fernando 2008-10-13 18:52:35 Re: Actualización de PostgreSQL me acabó con la BD
Previous Message Juan Ramirez 2008-10-13 17:19:04 RE: Ayuda con una Funcion plpgsql