
09/12/2007, 13:33
|
| | 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. |