Ejecución 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 de Active Server Pages (ASP).

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

Resumen

En este artículo se supone que está familiarizado con el procedimiento para usar Objetos de datos ActiveX (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 (@price) y devuelve un parámetro de salida (@out).

    Nota:

    De forma predeterminada, la Northwind base de datos de ejemplo y las bases de datos de ejemplo pubs no se instalan en SQL Server 2005. Estas bases de datos se pueden descargar desde el Centro de descarga de Microsoft. Para obtener más información sobre 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: Descarga de bases de datos de ejemplo northwind y pubs

  2. El siguiente código de ejemplo de 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 como se indica a continuación:

      Set myParameter = Command.CreateParameter (Name, [Type], [Direction], [Size], [Value])
      
    2. 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 los valores de parámetro dentro y fuera del procedimiento almacenado como se indica a continuación:

      <%
      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 la instalación de Active Server Pages y se coloca en la \Aspsamp\Samples carpeta, que normalmente se encuentra en la \Inetpub carpeta. Se recomienda la práctica de programación para 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 el cadena de conexión de ADO según corresponda para su entorno.

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

    Nota:

    Puede ser difícil determinar cómo llamar correctamente a un procedimiento almacenado si no está al tanto de 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, consulte Creación de una aplicación de datos simple mediante ADO.NET.