From: | "Yoel Mc Lennan" <listas(at)yoel(dot)com(dot)ar> |
---|---|
To: | "Ferran" <sherkoff(at)gmail(dot)com>, <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Stored procedure y C# (Error 42883) |
Date: | 2009-04-20 13:29:20 |
Message-ID: | 008a01c9c1bc$08c91ca0$8202a8c0@YoelEsc |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Ups, pequeño detalle (no lo vi en el mail anterio), no está bien definida la función, creo qu ese ejemplo viene de MS SQL no ? te paso un ejemlo pero sería bueno que le pases una leida a la documentación.
Saludos.
Yoel.
CREATE OR REPLACE FUNCTION "rrhh"."turno_load_by_pk" (l_id_turno integer) RETURNS "rrhh"."turno" AS
$body$
select "id_turno","descripcion","codigo","tipo","activo","id_dominio"
>From rrhh.turno Where id_turno=$1;
$body$
LANGUAGE 'sql' STABLE CALLED ON NULL INPUT SECURITY INVOKER;
----- Original Message -----
From: Ferran
To: pgsql-es-ayuda(at)postgresql(dot)org
Sent: Monday, April 20, 2009 7:47 AM
Subject: [pgsql-es-ayuda] Stored procedure y C# (Error 42883)
Buenos días,
Tengo un problema para lanzar un stored procedure, ubicado en un postgresql 8.3 des de visual studio 2008 y C#. Me da un error 42883 y me dice que no existe el stored procedure, cuando realmente si que existe.
El stored es muy sencillo:
CREATE OR REPLACE PROCEDURE "PRC_INSERTA_PERSONA"(nom bpchar, cognom bpchar, poblacio bpchar, provincia bpchar, edat integer) AS
BEGIN
INSERT INTO persona values (nom,cognom,poblacio,provincia,edat);
END
GRANT EXECUTE ON PROCEDURE "PRC_INSERTA_PERSONA"(bpchar, bpchar, bpchar, bpchar, integer) TO user;
y la llamada des de visual studio 2008 es:
string sCadConnexio = "Server=192.168.0.58;Port=5444;User Id=user;Password=pass;Protocol=3;SSL=false;Pooling=true;MinPoolSize=1;MaxPoolSize=20;Encoding=UNICODE;Timeout=15;SslMode=Disable;Database=BBDD";
NpgsqlConnection conn = new NpgsqlConnection(sCadConnexio);
conn.Open();
NpgsqlCommand sentencia = new NpgsqlCommand(
"PRC_INSERTA_PERSONA(:nom, :cognom, :poblacio, :provincia, :edat)", conn);
sentencia.CommandType = CommandType.StoredProcedure;
sentencia.Parameters.Add(new NpgsqlParameter(":nom", DbType.String));
sentencia.Parameters.Add(new NpgsqlParameter(":cognom", DbType.String));
sentencia.Parameters.Add(new NpgsqlParameter(":poblacio", DbType.String));
sentencia.Parameters.Add(new NpgsqlParameter(":provincia", DbType.String));
sentencia.Parameters.Add(new NpgsqlParameter(":edat", DbType.Int32));
sentencia.Parameters[0].Value = tbNom.Text;
sentencia.Parameters[1].Value = tbCognom.Text;
sentencia.Parameters[2].Value = tbPoblacio.Text;
sentencia.Parameters[3].Value = tbProvincia.Text;
sentencia.Parameters[4].Value = tbEdat.Text;
sentencia.ExecuteScalar();
conn.Close();
El error: {ERROR: 42883: function prc_inserta_persona(text, text, text, text, integer) does not exist"} System.Exception {Npgsql.NpgsqlException}
¿ Alguien me puede ayudar a encontrar el problema ?
Muchas gracias a todos por vuestra ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2009-04-20 13:55:33 | Re: Stored procedure y C# (Error 42883) |
Previous Message | Yoel Mc Lennan | 2009-04-20 13:23:39 | Re: Stored procedure y C# (Error 42883) |