Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Valeur renvoyée pas une procedure stockée SQLServer

1 réponse
Avatar
Pierre BOUSQUET
Bonjour,
Comment récupérer la valeur renvoyée (ici @block) par une procédure stockée
depuis SQLServer. Suivant l'exemple fourni avec la fonction
HExécuteRequêteSQL(), j'obtiens le code suivant.

Source est une Source de Données
// Initialisation de la variable block (suivant l'exemple de PCSoft)
Source.block=0

Requete est chaîne = "EXECUTE CB_IsRecordLock 'F_DOCENTETE',39731,@block
OUTPUT"

SI PAS HExécuteRequêteSQL(Source,"SQL",hRequêteSansCorrection,Requete) ALORS
Erreur(HErreurInfo()+RC+RC+Requete)
RETOUR
FIN
Trace(Source.block)

Erreur du serveur : il faut déclarer la variable @block, si je le fais, la
procédure s'execute bien mais la valeur de Source.block n'a pas changé

Merci de votre aide

Pierre

1 réponse

Avatar
Erwan
Bonjour,

J'utilise SqlServer moi aussi. Voici le code que j'utilise pour ce type
de procédure stockée :

sz_NomRequete = "AjoutPrep"+DonneIdentifiant()
sz_TexteRequete = "DECLARE @Resultat int; "+RC+...
" EXEC AjoutePrep '"+:msz_UserName+"',
'"+sz_NumBP+"',"+n_NumLigne+","+r_Quantite+",'"+sz_Carton+"',@Resultat
OUTPUT;"+RC+...
" EXEC CalNbCartPalBP '"+sz_NumBP+"';"+RC+...
" SELECT @Resultat;"
SI PAS SQLExec(sz_TexteRequete,sz_NomRequete) ALORS
SQLErreur(sz_TexteRequete,sz_NomRequete))
SQLFerme(sz_NomRequete)
SINON
SQLPremier(sz_NomRequete)
SQLInfoGene(sz_NomRequete)
n_Resultat = Val(SQLCol(sz_NomRequete,1))
SQLFerme(sz_NomRequete)
FIN


Voilà.