Cómo llamar a procedimientos almacenados de SQL Server desde ASP

Exención de responsabilidades de contenido KB retirado

Este artículo se refiere a productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Resumen

Para obtener una versión de este artículo para Microsoft Visual Basic .NET, consulte
306574 .
En este artículo se demuestran tres métodos para llamar a un procedimiento almacenado desde páginas Active Server utilizando ActiveX Data Objects (ADO).

Más información

El ejemplo siguiente utiliza el objeto Command para llamar a un procedimiento almacenado sp_test de ejemplo. Este procedimiento almacenado acepta un entero y tiene también un valor de retorno de un entero:
   <%@ LANGUAGE="VBSCRIPT" %>
<!--#include virtual="/ASPSAMP/SAMPLES/ADOVBS.INC"-->
<HTML> <HEAD><TITLE>Poner aquí el título del documento</TITLE></HEAD> <BODY> Este primer método consulta al origen de datos los parámetros del procedimiento almacenado. Éste es el método menos eficaz para llamar a un procedimiento almacenado.<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
%>
Llamada mediante el método 1<BR>
ReturnValue = <% Response.Write cmd.Parameters(0) %><P>

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

El método 2 declara el procedimiento almacenado y a continuación declara explícitamente los parámetros.<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
%>
Llamada mediante el método 2<BR>
ReturnValue = <% Response.Write cmd(0) %><P>

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

El método 3 es probablemente la manera más formal de llamar a un procedimiento almacenado. Utiliza 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
%>
Llamada mediante el método 3<BR>
ReturnValue = <% Response.Write cmd("RetVal") %><P>
</BODY> </HTML>
Observe que en los ejemplos anteriores se utilizan varios métodos de acceso a la colección Parameters del objeto Command. Algunos utilizan la colección predeterminada del objeto Command, mientras que otros especifican a qué propiedad de una colección determinada se tiene acceso.

Referencias

Para obtener los artículos de Knowledge Base más recientes y otra información de soporte técnico acerca de Visual InterDev y páginas Active Server, visite la página siguiente del sitio del Servicio de soporte técnico de Microsoft:
Propiedades

Id. de artículo: 164485 - Última revisión: 2 may. 2006 - Revisión: 1

Comentarios