Comment faire pour appeler des procédures stockées Microsoft SQL Server à partir d'ASP

Exclusion de responsabilité du contenu obsolète de la base de connaissances

Cet article a été rédigé sur les produits pour lesquels Microsoft n’offre plus aucune prise en charge. Par conséquent, cet article est proposé « en l’état » et ne sera plus mis à jour.

Cet article peut contenir des liens vers des informations en langue anglaise (pas encore traduites).

Résumé

Pour vous procurer une version Microsoft Visual Basic .NET de cet article, reportez-vous à l'article 306574 .

Cet article indique trois méthodes d'appel d'une procédure stockée à partir d'Active Server Pages à l'aide d'ActiveX Data Objects (ADO).

Plus d'informations

L'exemple suivant utilise l'objet Command pour appeler l'exemple de procédure stockée sp_test. Cette procédure stockée accepte un entier et comporte également une valeur de retour d'un entier :
   <%@ LANGUAGE="VBSCRIPT" %>
<!--#include virtual="/ASPSAMP/SAMPLES/ADOVBS.INC"-->
<HTML>
<HEAD><TITLE>Place Document Title Here</TITLE></HEAD>
<BODY>
This first method queries the data source about the parameters
of the stored procedure. This is the least efficient method of calling
a stored procedure.<BR>
<%
Set cn = Server.CreateObject("ADODB.Connection")
Set cmd = Server.CreateObject("ADODB.Command")
cn.Open "data source name", "userid", "password"
Set cmd.ActiveConnection = cn
cmd.CommandText = "sp_test"
cmd.CommandType = adCmdStoredProc
' Ask the server about the parameters for the stored proc
cmd.Parameters.Refresh
' Assign a value to the 2nd parameter.
' Index of 0 represents first parameter.
cmd.Parameters(1) = 11
cmd.Execute
%>
Calling via method 1<BR>
ReturnValue = <% Response.Write cmd.Parameters(0) %><P>

<!-- ************************************************************ -->

Method 2 declares the stored procedure, and then explicitly declares
the parameters.<BR>
<%
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "data source name", "userid", "password"
Set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = cn
cmd.CommandText = "sp_test"
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Append cmd.CreateParameter("RetVal", adInteger, _
adParamReturnValue)
cmd.Parameters.Append cmd.CreateParameter("Param1", adInteger, _
adParamInput)
' Set value of Param1 of the default collection to 22
cmd("Param1") = 22
cmd.Execute
%>
Calling via method 2<BR>
ReturnValue = <% Response.Write cmd(0) %><P>

<!-- ************************************************************ -->

Method 3 is probably the most formal way of calling a stored procedure.
It uses the canocial
<%
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "data source name", "userid", "password"
Set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = cn
' Define the stored procedure's inputs and outputs
' Question marks act as placeholders for each parameter for the
' stored procedure
cmd.CommandText = "{?=call sp_test(?)}"
' specify parameter info 1 by 1 in the order of the question marks
' specified when we defined the stored procedure
cmd.Parameters.Append cmd.CreateParameter("RetVal", adInteger, _
adParamReturnValue)
cmd.Parameters.Append cmd.CreateParameter("Param1", adInteger, _
adParamInput)
cmd.Parameters("Param1") = 33
cmd.Execute
%>
Calling via method 3<BR>
ReturnValue = <% Response.Write cmd("RetVal") %><P>
</BODY>
</HTML>
Notez que dans les exemples ci-dessus, plusieurs méthodes d'accès à la collection Parameters de l'objet Command sont utilisées. Certaines utilisent la collection par défaut de l'objet Command tandis que d'autres spécifient à quelle propriété d'une collection donnée il faut accéder.

Références

Pour connaître les articles de la Base de connaissances les plus récents et d'autres informations d'assistance sur Visual InterDev et Active Server Pages, consultez la page suivante sur le site de support technique de Microsoft :
Propriétés

ID d'article : 164485 - Dernière mise à jour : 25 juil. 2006 - Révision : 1

Commentaires