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
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 GOEl 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
Northwindinstaladas 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 pubsEl 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.
Use el
CreateParametermétodo para crear parámetros en ADO de la siguiente manera:Set myParameter = Command.CreateParameter (Name, [Type], [Direction], [Size], [Value])Se anexó el parámetro a la colección Parameters de la siguiente manera:
Command.Parameters.Append myParameterNota
Los parámetros de la colección Parameters deben coincidir con el orden de los parámetros del procedimiento almacenado.
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\Samplesencuentra en la\Inetpubcarpeta. 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" -->
Modifique la cadena de conexión de ADO según corresponda para su entorno.
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.