Buenas tardes,

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

Responder a