otl et exécution de procédure stockée
Bonjour,
J'aimerai réussir à exécuter une procédure stockée sous oracle.
Cette procédure retourne une valeur, j'aimerai donc pouvoir la récupérer.
Je sais que je dois utiliser "otlv4" mais si quelqu'un pouvait m'éclairer juste un peu sur ce point...
Merci pour votre aide
Réponse qui peut peut-être servir à d'autre
Voilà une fonction qui permet de jouer une procédure et de retourner la valeur que retourne cette procédure:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
int joueProcedure(string proc)
{
int l_iPos = 0, l_iLastPos = 0;
try
{
//on supprime les \r de la procédure
while (( l_iPos = proc.find("\r",l_iLastPos)) != string::npos)
{
proc.replace(l_iPos,1,"");
l_iLastPos = l_iPos+2;
}
//execution de la procédure
otl_stream os(1,proc.c_str(),*database);
//récupération de la valeur de retour
os >> l_iRetour;
return 128;
}
catch(otl_exception& p)
{
cout << "Echec : Erreur lors de l'execution de la procedure" <<endl;
return 132;
}
} |
PS: la procédure doit retourner une valeur de la manière suivante:
Code:
select 1 into :RETOUR<int,out> from dual;