Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/12/2007, 13:33
chcma
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 21 años, 9 meses
Puntos: 7
Npgsql Recuperar Valores De Sp

Buenas tardes amigos !!!

Verán tengo el siguiente SP en PostgreSQL 8.2
Código:
CREATE OR REPLACE FUNCTION pdameusuario(pnum_identidad bpchar, pclave bpchar) RETURNS SETOF refcursor AS
$BODY$
DECLARE curCursor refcursor;
BEGIN

	--ACCEDIO POR CERTIFICADO
	IF pclave='' THEN
		OPEN curCursor FOR SELECT cod_usuario, num_identidad, clave, nombre, apellido_1, apellido_2, 
					calle, email, TUSUARIOS.cod_pais, TPAISES.PAIS, TUSUARIOS.cod_provincia, TPROVINCIAS.provincia, ciudad, codigo_postal, 
					fec_alta, foto, notificar_email, estrellas, cuenta_activa
				  
					FROM tusuarios
						INNER JOIN TPAISES
							ON TPAISES.COD_PAIS = TUSUARIOS.COD_PAIS
						INNER JOIN TPROVINCIAS
							ON TPROVINCIAS.COD_PROVINCIA = TUSUARIOS.COD_PROVINCIA

					WHERE NUM_IDENTIDAD = pnum_identidad;
		RETURN NEXT curCursor;
	END IF;
	
	--ACCEDIO NORMAL
	IF pnum_identidad<>'' and pclave<>'' THEN
		OPEN curCursor FOR SELECT cod_usuario, num_identidad, clave, nombre, apellido_1, apellido_2, 
					calle, email, TUSUARIOS.cod_pais, TPAISES.PAIS, TUSUARIOS.cod_provincia, TPROVINCIAS.provincia, ciudad, codigo_postal, 
					fec_alta, foto, notificar_email, estrellas, cuenta_activa
				  
					FROM tusuarios
						INNER JOIN TPAISES
							ON TPAISES.COD_PAIS = TUSUARIOS.COD_PAIS
						INNER JOIN TPROVINCIAS
							ON TPROVINCIAS.COD_PROVINCIA = TUSUARIOS.COD_PROVINCIA

					WHERE NUM_IDENTIDAD = pnum_identidad
					AND   CLAVE =pclave;
		RETURN NEXT curCursor;
	END IF;

	RETURN;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

Estoy intentando llamarlo desde .NET usando al dedillo el puto manual de NPGSQL que viene:
Código:
        private void button1_Click(object sender, EventArgs e)
        {
            Npgsql.NpgsqlConnection objCn = null;
            NpgsqlTransaction t = null;
            try
            {
                string txtCN = "mi cadena de conexion....";

                DataTable tbDatos = new DataTable();
                objCn = new Npgsql.NpgsqlConnection(txtCN);
                objCn.Open();
                t = objCn.BeginTransaction();

                Npgsql.NpgsqlCommand objCmd = new Npgsql.NpgsqlCommand("pdameusuario", objCn);
                objCmd.CommandType = CommandType.StoredProcedure;
                objCmd.Parameters.Add("pnum_identidad", "77777");
                objCmd.Parameters.Add("pclave", "miclave");

                Npgsql.NpgsqlDataAdapter objDa = new Npgsql.NpgsqlDataAdapter(objCmd);
                objDa.Fill(tbDatos);

                t.Commit();
                MessageBox.Show(tbDatos.Rows[0][0].ToString());
            }
            catch (Exception ex)
            {
                t.Rollback();
                MessageBox.Show(ex.Message);
            }
            finally
            {
                if (objCn.State == ConnectionState.Open)
                    objCn.Close();
            }

        }

Por favor, ¿ALGUIEN ME PUEDE AYUDAR?, estoy dando vueltas a la mierda esta y la verdad que ya estoy de mal humor...

Ejecutar se ejecuta todo bien, pero el resultado que recibo del MSGBOX es: <unnamed portal 1>


¿ALGUIEN SABE QUE PUEDE SER, POR FAVOR?
__________________
Charlie.