c# oplossing
Hoi, je moet de onderstaande code omschrijven naar VB.
Maar dat zal wel lukken denk ik.
De code geeft in ieder geval een beetje een idee hoe het werkt:
long errNum ;
string errMsg ;
OracleCommand command ;
OracleTransaction dbTransaction ;
OracleConnection connection ;
command = new OracleCommand() ;
command.CommandType = CommandType.StoredProcedure ;
OracleParameter inPar = new OracleParameter() ;
inPar.Value = "Piet" ;
inPar.OracleType = System.Data.OracleClient.OracleType.NVarChar ;
inPar.ParameterName = "p_naam" ;
inPar.Size = 10 ;
inPar.Direction = ParameterDirection.Input ;
command.Parameters.Add(inPar) ;
// data terug van procedure afvangen als er iets fout gaat:
OracleParameter outPar = new OracleParameter() ;
outPar.ParameterName = "O_EXCEPTION" ;
outPar.Direction = ParameterDirection.Output ;
outPar.OracleType = System.Data.OracleClient.OracleType.Number ;
command.Parameters.Add(outPar) ;
outPar.ParameterName = "O_ERR_NUM" ;
outPar.Direction = ParameterDirection.Output ;
outPar.OracleType = System.Data.OracleClient.OracleType.Number ;
command.Parameters.Add(outPar) ;
outPar.ParameterName = "O_ERR_MSG" ;
outPar.Direction = ParameterDirection.Output ;
outPar.OracleType = System.Data.OracleClient.OracleType.NVarChar ;
outPar.Size = 255 ;
command.Parameters.Add(outPar) ;
connection = new OracleConnection(sConn) ;
connection.Open();
command.Commandtext = "PKG_LEDEN.INSERT_NEW_LID" ;
command.Connection = connection ;
try
{
command.ExecuteNonQuery() ;
}
catch(Exception e)
{
Exception except = new Exception(e.Message + " - " + sqlCommand) ;
throw except ;
}
finally
{
connection.Close() ;
}
if (long.Parse(command.Parameters["O_EXCEPTION"].Value.ToString()) > 0)
{
errNum = long.Parse(dbManager.GetOutParam("O_ERR_NUM").ToString()) ;
errMsg = dbManager.GetOutParam("O_ERR_MSG").ToString();
throw new Exception(errNum.ToString() + " " + errMsg.ToString()) ;
}
--------------------------------
de database procedure :
--------------------------------
PROCEDURE INSERT_NEW_LID (
p_naam IN leden.naam%TYPE,
o_exception OUT NUMBER,
o_err_msg OUT VARCHAR2,
o_err_num OUT VARCHAR2
)IS
BEGIN
o_exception := 0;
INSERT INTO leden(naam )values(p_naam);
EXCEPTION
WHEN OTHERS
THEN
o_exception := 1;
o_err_msg := SUBSTR (SQLERRM, 1, 255);
o_err_num := SQLCODE;
END;