1 C'est aussi la méthode la plus simple, avec deux paramètres d'entrée et aucune valeur de retour :
définir la connexion = server.createobject (adodb.connection)
connection.open someDSN
Connection.Execute nom de procédure varvalue1, varvalue2
'Effacer tous les objets et libérer les ressources
connexion.fermer
définir la connexion = rien
2 Si vous souhaitez renvoyer le jeu d'enregistrements :
définir la connexion = server.createobject (adodb.connection)
connexion.ouvrir someDSN
définir rs = serveur.createobject (adodb.recordset)
rs.Open Exec nom de procédure varvalue1, varvalue2, connexion
'Effacer tous les objets et libérer les ressources
rs.fermer
connexion.fermer
setrs = rien
définir la connexion = rien
3 Aucune des deux méthodes ci-dessus ne peut avoir de valeur de retour (sauf Recordset). Si vous souhaitez obtenir la valeur de retour, vous devez utiliser la méthode Command.
Tout d’abord, il existe deux types de valeurs de retour. L'une consiste à renvoyer directement une valeur dans la procédure stockée, tout comme la valeur de retour de la fonction C et VB ; l'autre consiste à renvoyer plusieurs valeurs, et les noms de variables pour stocker ces valeurs doivent d'abord être spécifiés dans les paramètres d'appel. .
Cet exemple doit gérer plusieurs paramètres, des paramètres d'entrée, des paramètres de sortie, des jeux d'enregistrements de retour et une valeur de retour directe (est-il suffisamment complet ?)
La procédure stockée est la suivante :
utiliser les pubs
ALLER
-- Créer une procédure stockée
créer une procédure sp_PubsTest
--Définissez trois variables de paramètres. Notez que la troisième est spécialement marquée pour la sortie.
@au_lname varchar (20),
@intID entier,
@intIDOut entier SORTIE
COMME
SELECT @intIDOut = @intID + 1
SÉLECTIONNER *
DES auteurs
OÙ au_lname COMME @au_lname + '%'
--Renvoyer une valeur directement
RETOUR @intID + 2
Le programme asp qui appelle cette procédure stockée est le suivant :
<%@ Langage=VBScript %>
<%
Dim CmdSP
DimadoRS
Dim adCmdSPStoredProc
Dim adParamReturnValue
Dim adParaminput
Dim adParamOutput
Dim adInteger
Dim iVal
Dim oVal
Dim adoField
Dim adVarChar
'Ces valeurs sont des constantes prédéfinies en VB et peuvent être appelées directement, mais elles ne sont pas prédéfinies en VBScript
adCmdSPStoredProc = 4
adParamReturnValue = 4
adParaminput = 1
adParamOutput = 2
adEntier = 3
adVarChar = 200
iVal = 5
oVal = 3
'Créer un objet de commande
définir CmdSP = Server.CreateObject (ADODB.Command)
'Créer un lien
CmdSP.ActiveConnection = Driver={SQL Server};server=(local);Uid=sa;Pwd=;Database=Pubs
'Définir le nom de l'appel de l'objet de commande
CmdSP.CommandText = sp_PubsTest
'Définissez le type d'appel de commande comme étant une procédure stockée (adCmdSPStoredProc = 4)
CmdSP.CommandType = adCmdSPStoredProc
'Ajouter des paramètres à l'objet de commande
'Définissez la procédure stockée pour avoir une valeur de retour directe, et c'est un entier. La valeur par défaut est 4.
CmdSP.Parameters.Append CmdSP.CreateParameter(RETURN_VALUE, adInteger, adParamReturnValue, 4)
'Définir un paramètre de saisie de caractères
CmdSP.Parameters.Append CmdSP.CreateParameter (@au_lname, adVarChar, adParaminput, 20, M)
'Définir un paramètre d'entrée entier
CmdSP.Parameters.Append CmdSP.CreateParameter (@intID, adInteger, adParamInput, , iVal)
'Définir un paramètre de sortie entier
CmdSP.Parameters.Append CmdSP.CreateParameter (@intIDOut, adInteger, adParamOutput, oVal)
'Exécutez la procédure stockée et récupérez le jeu d'enregistrements renvoyé
Définir adoRS = CmdSP.Execute
'Imprimez chaque enregistrement. Les champs sont virtuels et peuvent être ignorés.
Bien que ce ne soit pas adoRS.EOF
pour chaque adoField dans adoRS.Fields
Response.Write adoField.Name & = & adoField.Value & <br> & vbCRLF
Suivant
Réponse.Écrire<br>
adoRS.MoveNext
Wende
'Imprimer deux valeurs de sortie :
Response.Write <p>@intIDOut = & CmdSP.Parameters (@intIDOut).Value & </p>
Response.Write <p>Valeur de retour = & CmdSP.Parameters(RETURN_VALUE).Value & </p>
'Nettoyage général
Définir adoRS = rien
Définir CmdSP.ActiveConnection = rien
Définir CmdSP = rien
%>
Il existe aussi d’autres moyens, un peu plus biaisés, et nous en reparlerons plus tard.
Cet article fait référence à de nombreux articles qui ne sont pas répertoriés ici.