Re: Stored procedure y C# (Error 42883)

From: marcelo Cortez <jmdc_marcelo(at)yahoo(dot)com(dot)ar>
To: pgsql-es-ayuda(at)postgresql(dot)org, Ferran <sherkoff(at)gmail(dot)com>
Subject: Re: Stored procedure y C# (Error 42883)
Date: 2009-04-20 18:10:47
Message-ID: 567257.58257.qm@web32006.mail.mud.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Hola gente
abajo mi aporte.

--- El lun 20-abr-09, Ferran <sherkoff(at)gmail(dot)com> escribió:

> De: Ferran <sherkoff(at)gmail(dot)com>
> Asunto: [pgsql-es-ayuda] Stored procedure y C# (Error 42883)
> Para: pgsql-es-ayuda(at)postgresql(dot)org
> Fecha: lunes, 20 de abril de 2009, 7:47 am
> 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.

Fijate que el nombre del procedure te lo pone en minusculas , eso occurre porque asi lo buscas postgres. para poner nombre de campos mayusculas o procedures o lo que sea ,.( para que sea case sensitive) deberas poner los nombres entre dobles comillas,

en la parte
NpgsqlCommand sentencia = new NpgsqlCommand(

"PRC_INSERTA_PERSONA(:nom, :cognom, :poblacio,
:provincia, :edat)", conn);

deberas

NpgsqlCommand sentencia = new NpgsqlCommand(

" "PRC_INSERTA_PERSONA"(:nom, :cognom, :poblacio,
:provincia, :edat)", conn);
supongo que con un string builder para que no te joda mucho lo de laas comillas.

salu2
a to2
mdc

>
>
>
>
> 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
>
>
>
>

Yahoo! Cocina
Recetas prácticas y comida saludable
http://ar.mujer.yahoo.com/cocina/

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message dali aparicio 2009-04-20 18:15:38 Re: Oracle compra SUN
Previous Message Guido Barosio 2009-04-20 18:06:37 Re: Oracle compra SUN