Ejecutar SQL Server procedimientos almacenados desde una página ASP

En este artículo se muestra cómo ejecutar SQL Server procedimientos almacenados y usar parámetros desde una página páginas Active Server (ASP).

Versión del producto original:   Internet Information Services
Número KB original:   300488

Resumen

En este artículo se supone que está familiarizado con el procedimiento para usar ActiveX objetos de datos (ADO) en una página ASP.

Ejemplo paso a paso

  1. Ejecute la siguiente consulta en SQL Server analizador de consultas o SQL Server Management Studio en la base de datos pubs:

    CREATE proc MyProc
    (
        @price smallint,
        @out smallint OUTPUT
    )
    AS
    Select @out = count(*) from titles where price < @price
    GO
    

    El procedimiento almacenado ( MyProc ) toma un parámetro de entrada ( ) y devuelve un parámetro de salida ( @price @out ).

    Nota

    De forma predeterminada, la base de datos de ejemplo y las bases de datos de ejemplo pubs no están Northwind instaladas en SQL Server 2005. Estas bases de datos se pueden descargar desde el Centro de descarga de Microsoft. Para obtener más información acerca de cómo descargar la base de datos de ejemplo Northwind y la base de datos de ejemplo pubs, visite el siguiente sitio web de Microsoft: Descargar bases de datos de ejemplo de Northwind y pubs

  2. El siguiente código de ejemplo ASP llama al procedimiento almacenado recién creado. Puede usar este código ASP para configurar el parámetro de entrada y ejecutar la consulta.

    1. Use el CreateParameter método para crear parámetros en ADO de la siguiente manera:

      Set myParameter = Command.CreateParameter (Name, [Type], [Direction], [Size], [Value])
      
    2. Se anexó el parámetro a la colección Parameters de la siguiente manera:

      Command.Parameters.Append myParameter
      

      Nota

      Los parámetros de la colección Parameters deben coincidir con el orden de los parámetros del procedimiento almacenado.

    3. Ejecute el comando para pasar valores de parámetro dentro y fuera del procedimiento almacenado de la siguiente manera:

      <%
      Dim cmd
      Dim ln
      Dim retCount
      
      Set cmd = Server.CreateObject("ADODB.Command")
      
      With cmd
       .ActiveConnection = "Paste your connection string here"
       .Commandtext = "MyProc"
       .CommandType = adCmdStoredProc
       .Parameters.Append .CreateParameter("@price", adSmallInt, adParamInput, 10).Parameters("@price") = 22
       .Parameters.Append .CreateParameter("@retValue", adSmallInt, adParamOutput, 10).Execute ln, , adExecuteNoRecords
       retCount = .Parameters("@retValue")
      End with
      
      Response.Write retcount
      
      Set cmd = Nothing
      %>
      

      Nota

      Las constantes que se usan en este ejemplo se pueden encontrar en el archivo Adovbs.inc. Este archivo se instala durante páginas Active Server instalación y se coloca en la carpeta, que normalmente se \Aspsamp\Samples encuentra en la \Inetpub carpeta. Se recomienda usar las constantes en lugar de los valores numéricos al llamar al procedimiento almacenado para que el código sea más fácil de leer y mantener.

       <%@ LANGUAGE = VBScript %>
       <!-- #INCLUDE VIRTUAL="/ASPSAMP/SAMPLES/ADOVBS.INC" -->
      
  3. Modifique la cadena de conexión de ADO según corresponda para su entorno.

  4. Guarde la página ASP y la vea en el explorador.

    Nota

    Puede ser difícil determinar cómo llamar correctamente a un procedimiento almacenado si no conoce la información de parámetros del procedimiento almacenado. Sin la información correcta, no puede crear correctamente los parámetros de ADO. Puede usar el método Refresh del objeto Parameter para rellenar automáticamente la colección Parameters, en función de la definición del procedimiento almacenado en el servidor. Por ejemplo:

    Command.Parameters.Refresh
    

Referencias

Para obtener más información, vea Create a simple data application by using ADO.NET.