From: | Jeferson Alvarez <jalvarez(at)renova(dot)com(dot)pe> |
---|---|
To: | Frank Jonislla <frank(dot)che88(at)gmail(dot)com>, ayuda postgre <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Fwd: Parametros con funciones desde vb.net |
Date: | 2007-01-05 17:08:10 |
Message-ID: | 459E85FA.4000007@renova.com.pe |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
gracias por la ayuda prestada me sirvio de mucho al final el problema
era con el tipo de dato en el punto net pasaba el parametro como tipo
char y en la funcion tambien era de tipo char pero al parecer son
incompatibles pero cambiandolo a bpchar si funciona y otro error gue lo
del @ y las comillas en la definicion de la función en el posrgresql a
los parametros cuando se les pone comillas estas haciendo referencia a
un campo de tabla o algun objeto que debe existir dentro de la funcion
es lo que entendi
asi que simplemente le quite las comillas a los parametros al crear la
funcion
gracias por todo.
Frank Jonislla escribió:
> se me olvidaba tienes que hacer la llamda con comillas simples ya que
> se trata de un parametro de tipo char sino te va a arrojar el mismo
> problema
> cmdNQ.Parameters.Add(New NpgsqlParameter("SS",'k' ))
> con respecto a la @ tiene que ir sirve para decirle a Npgsql es un
> parametro sigue intentando, tambien me rompi ñla cabeza con
> procedimientos almacenados y postgres pueto que no habia mucha
> informacion al respecto.
> existe un manual de Npgsql dond epuedes encontrar un ejemplo sencillo
> de conexion a postgres y procedimientos almacenados, y consultas con
> parametro quiza te pueda ayudar.
> http://npgsql.projects.postgresql.org/docs/manual/UserManual.htm
>
> El día 5/01/07, *Jeferson Alvarez* <jalvarez(at)renova(dot)com(dot)pe
> <mailto:jalvarez(at)renova(dot)com(dot)pe>> escribió:
>
> algomas frank cuando le quito el @ en el mensaje me dice que la
> columna
> no existe y hace referencia a "ss"
>
> Frank Jonislla escribió:
> >
> >
> > ---------- Forwarded message ----------
> > From: *Frank Jonislla* <frank(dot)che88(at)gmail(dot)com
> <mailto:frank(dot)che88(at)gmail(dot)com>
> > <mailto:frank(dot)che88(at)gmail(dot)com <mailto:frank(dot)che88(at)gmail(dot)com>>>
> > Date: 04-ene-2007 21:54
> > Subject: Re: [pgsql-es-ayuda] Parametros con funciones desde
> vb.net <http://vb.net>
> > <http://vb.net>
> > To: Jeferson Alvarez <jalvarez(at)renova(dot)com(dot)pe
> <mailto:jalvarez(at)renova(dot)com(dot)pe>
> > <mailto: jalvarez(at)renova(dot)com(dot)pe <mailto:jalvarez(at)renova(dot)com(dot)pe>>>
> >
> > Bueno No soy bueno para contestar pero aca esta mi aporte.
> > los procedimientos almacenados en postgres son de este tipo:
> > nombre del procedimiento ( lista de parametros )
> > nombre_procedimiento (a,b,c) ya que postgres no reconoce parametros
> > anonimos.
> > el contructor que utilizas tiene como parametros (valor, tipo de
> dato);
> > NpgsqlParameter() este constructor tiene varias sobrcargas
> > usa el siguiente NpgsqlParameter("SS",_valor_del_parametro) donde
> > valor del parametro puede ser un string, entero u otro puesto que
> > Npgsql le pone el tipo adecuado.
> >
> >
> > a mi parecer esta seria la forma correcta de hacer tu llamada.
> > Dim cmdNQ As New Npgsql.NpgsqlCommand("BICH(SS)", cnn)
> > cmdNQ.Parameters.Add(New
> NpgsqlParameter("SS",_valor_del_parametro))
> >
> > o esta, no estoy seguro si va el arroba.
> > Dim cmdNQ As New Npgsql.NpgsqlCommand("BICH(@SS)", cnn)
> > cmdNQ.Parameters.Add(New
> NpgsqlParameter("SS",_valor_del_parametro))
> >
> >
> >
> > pero yo uso c#
> > y usar esa forma no seria muy conveniente si utilizas una funcion
> > para llamra a procedimientos almacenados con parametros
> variables por
> > eso yo utilizo esta forma si te sirve.
> >
> > public System.Data.DataSet TraerDataset(string
> > ProcedimientoAlmacenado,params System.Object[] Args)
> > {
> > System.Data.DataSet mDataSet = new
> System.Data.DataSet();
> > //iniciar transaccion
> > this.CrearDataAdapter(ProcedimientoAlmacenado,
> > Args).Fill(mDataSet);
> > return mDataSet;
> >
> > }
> >
> >
> >
> > /// <summary>
> > /// Carga los parametros del procedimiento almacenado
> > /// </summary>
> > /// <remarks>
> > /// Inherited method from base class gDatos
> > ///
> > /// </remarks>
> > /// <param name='Comando'>Comando que ejecuta el
> procedimiento
> > almacenado</param>
> > /// <param name='Args'>Parametros que van al rocedimiento
> > almacenado</param>
> > protected override void
> > CargarParametros(System.Data.IDbCommand Comando, params object[]
> Args)
> > {
> >
> > for(int i=0;i<Args.Length;i++)
> > {
> >
> > //Convert.ToChar(97+i).ToString() = a si i=0
> > //nombre del parametro
> > // Args[i] -> Valor del parametro
> > Comando.Parameters.Add(new
> > Npgsql.NpgsqlParameter(Convert.ToChar(97+i).ToString(),Args[i]));
> > }
> >
> > }
> >
> > /// <summary>
> > /// Crea un data adapter paar un procedimiento almacenado
> > /// </summary>
> > /// <remarks>
> > /// Inherited method from base class gDatos
> > ///
> > /// </remarks>
> > /// <param name='ProcedimientoAlmacenado'>Nombre del
> > procedimiento almacenado</param>
> > /// <param name='Args'>Parametros del procedimieto
> > almacenado</param>
> > protected override System.Data.IDataAdapter
> > CrearDataAdapter(string ProcedimientoAlmacenado, params object[]
> Args)
> > {
> > Npgsql.NpgsqlDataAdapter Da=new
> > Npgsql.NpgsqlDataAdapter((Npgsql.NpgsqlCommand)
> > Comando(ProcedimientoAlmacenado));
> > //Npgsql.NpgsqlTransaction t =
> > (Npgsql.NpgsqlTransaction)this.Conexion.BeginTransaction();
> > if(Args.Length!=0)
> > CargarParametros(Da.SelectCommand,Args);
> > //t.Commit();
> > return ( System.Data.IDataAdapter) Da;
> >
> > }
> >
> >
> >
> >
> > /// <summary>
> > /// crea un comando
> > /// </summary>
> > /// <remarks>
> > /// Inherited method from base class gDatos
> > ///
> > /// </remarks>
> > /// <param name='ProcedimientoAlmacenado'>Nombre del
> > procedimiento almacenado</param>
> > protected override System.Data.IDbCommand Comando(string
> > ProcedimientoAlmacenado)
> > {
> > Npgsql.NpgsqlCommand Com;
> >
> > Npgsql.NpgsqlConnection Con2=new
> > Npgsql.NpgsqlConnection (this.CadenaConexion);
> > Con2.Open();
> > Com=new
> > Npgsql.NpgsqlCommand(ProcedimientoAlmacenado,Con2);
> >
> Com.CommandType=System.Data.CommandType.StoredProcedure ;
> > Npgsql.NpgsqlCommandBuilder.DeriveParameters(Com);
> > Con2.Close();
> > Con2.Dispose();
> >
> > Com.Connection=(Npgsql.NpgsqlConnection
> ) this.Conexion;
> > Com.Transaction= (Npgsql.NpgsqlTransaction)
> this.mTransaccion;
> > return (System.Data.IDbCommand) Com;
> >
> > }
> >
> >
> > El día 4/01/07, *Jeferson Alvarez* < jalvarez(at)renova(dot)com(dot)pe
> <mailto:jalvarez(at)renova(dot)com(dot)pe>
> > <mailto:jalvarez(at)renova(dot)com(dot)pe <mailto:jalvarez(at)renova(dot)com(dot)pe>>>
> escribió:
> >
> > Actualmente lo estoy llamando asi que cambios tengo que
> realizarle mil
> > gracias por la ayuda brindada espero poder retribuirles el
> favor mas
> > adelante
> >
> > Dim oData As New sgcCachibachesLIB.UTILeeCfg
> > Dim cnn As New
> > Npgsql.NpgsqlConnection(oData.BuildChainConection.ToString.Trim)
> >
> > Dim cmdNQ As New Npgsql.NpgsqlCommand("BICH", cnn)
> > cmdNQ.CommandType = CommandType.StoredProcedure
> > cmdNQ.Parameters.Add(New NpgsqlParameter("SS",
> > NpgsqlTypes.NpgsqlDbType.Char))
> >
> > Dim da As New Npgsql.NpgsqlDataAdapter(cmdNQ)
> > Dim dt As New System.Data.DataTable
> > da.Fill(dt)
> > dg.DataSource = dt
> >
> >
> > yul pg escribió:
> > > es igual que un query solo que los parametros van entre
> parentesis y
> > > dependiendo del tipo de parametro lleva comillas simples, los
> > > parametros se separan por comas
> > >
> > > */Jeferson Alvarez < jalvarez(at)renova(dot)com(dot)pe
> <mailto:jalvarez(at)renova(dot)com(dot)pe>
> > <mailto:jalvarez(at)renova(dot)com(dot)pe
> <mailto:jalvarez(at)renova(dot)com(dot)pe>>>/* escribió:
> > >
> > > Hola a todos soy nuevo en este interesante y seductor
> mundo de
> > > PostgreSQL gracias por la ayuda de ante mano
> > > mi problema es el siguiente estamos probando en VB.Net y
> > PosgreSQL y
> > > usamos Npgsql para conectarnos he podido
> > > ejecutar funciones sin parametros que me devueva un
> conjunto de
> > > registros pero cuando trato de ejecutar una función con
> > > parametros enm el mensaje de error mes sale que
> simplemente no
> > > existe la
> > > función si alguien pudiera darme una ayudita o
> indicarme por
> > donde
> > > debo
> > > buscar la solución.
> > >
> > > ---------------------------(fin del
> > > mensaje)---------------------------
> > > TIP 7: no olvides aumentar la configuración del "free
> space map"
> > >
> > >
> > > __________________________________________________
> > > Correo Yahoo!
> > > Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
> > > Regístrate ya - http://correo.yahoo.com.mx/
> > >
> >
> > ---------------------------(fin del
> > mensaje)---------------------------
> > TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
> >
> > http://archives.postgresql.org/pgsql-es-ayuda
> >
> >
> >
> >
> > --
> > .~.
> > ( 0 0 )
> > / V \
> > // \\ Frank Jonislla Pillaca
> > /(( _ ))\ AYACUCHO
> > oo0 0oo 9700982
> >
> >
> > --
> > .~.
> > ( 0 0 )
> > / V \
> > // \\ Frank Jonislla Pillaca
> > /(( _ ))\ AYACUCHO
> > oo0 0oo 9700982
>
>
>
>
> --
> .~.
> ( 0 0 )
> / V \
> // \\ Frank Jonislla Pillaca
> /(( _ ))\ AYACUCHO
> oo0 0oo 9700982
From | Date | Subject | |
---|---|---|---|
Next Message | Jenaro Centeno Gómez | 2007-01-05 18:14:40 | Re: ConnectionString |
Previous Message | Telmo Santana | 2007-01-05 16:43:44 | unsubscribe |