VB.NET met stored procedures in Oracle

Status
Niet open voor verdere reacties.

Alfredo Antaria

Nieuwe gebruiker
Lid geworden
25 okt 2004
Berichten
2
Hallo beste mede programmeurs,

Ik zou graag willen weten of er ook mensen zijn die ervaring hebben met stored procedures binnen VB.NET.
Het gebruiken van de OleDbDataAdapter is niet voldoende! Daar kan je alleen tables of view selecteren.
Dit was onder VB 6.0 makkelijker te doen met de dataEnvironment.
Wie weet een makkelijke oplossing?

Alfredo Antaria.
 
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;
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan