1 Este es también el método más simple, con dos parámetros de entrada y sin valor de retorno:
establecer conexión = servidor.createobject(adodb.conexión)
conexión.abrir algúnDSN
Conexión.Ejecutar procname varvalue1, varvalue2
'Borra todos los objetos a nada y libera recursos
conexión.cerrar
establecer conexión = nada
2 Si desea devolver el conjunto de registros:
establecer conexión = servidor.createobject(adodb.conexión)
conexión.abrir algúnDSN
establecer rs = servidor.createobject(adodb.recordset)
rs.Open Exec nombre de proceso varvalue1, varvalue2, conexión
'Borra todos los objetos a nada y libera recursos
rs.cerrar
conexión.cerrar
setrs=nada
establecer conexión = nada
3 Ninguno de los dos métodos anteriores puede tener un valor de retorno (excepto Recordset). Si desea obtener el valor de retorno, debe utilizar el método Comando.
En primer lugar, existen dos tipos de valores de retorno. Una es devolver directamente un valor en el procedimiento almacenado, al igual que el valor de retorno de la función de C y VB, la otra es devolver múltiples valores, y los nombres de las variables para almacenar estos valores deben especificarse primero en los parámetros de llamada; .
Este ejemplo necesita manejar múltiples parámetros, parámetros de entrada, parámetros de salida, conjuntos de registros de retorno y un valor de retorno directo (¿es lo suficientemente completo?)
El procedimiento almacenado es el siguiente:
usar pubs
IR
-- Crear un procedimiento almacenado
crear procedimiento sp_PubsTest
--Defina tres variables de parámetros. Tenga en cuenta que la tercera está especialmente marcada para salida.
@au_lname varchar (20),
@intIDint,
@intIDOut int SALIDA
COMO
SELECCIONAR @intIDOut = @intID + 1
SELECCIONAR *
DE autores
DONDE au_lname ME GUSTA @au_lname + '%'
--Devuelve un valor directamente
VOLVER @intID + 2
El programa asp que llama a este procedimiento almacenado es el siguiente:
<%@ Idioma=VBScript %>
<%
Atenuar CmdSP
DimadoRS
Anuncio atenuadoCmdSPStoredProc
Dim adParamReturnValue
Anuncio oscuroParaminput
Dim adParamOutput
Anuncio atenuadoEntero
iVal tenue
óvalo tenue
Dim adoField
AdVarChar atenuado
'Estos valores son constantes predefinidas en VB y se pueden llamar directamente, pero no están predefinidos en VBScript
adCmdSPStoredProc = 4
adParamReturnValue = 4
anuncioParaminput = 1
salidaParamad = 2
anuncioEntero = 3
adVarChar = 200
iVal = 5
oVal = 3
'Crear un objeto de comando
establecer CmdSP = Server.CreateObject(ADODB.Command)
'Crear enlace
CmdSP.ActiveConnection = Controlador={SQL Server};servidor=(local);Uid=sa;Pwd=;Base de datos=Pubs
'Definir el nombre de llamada del objeto de comando
CmdSP.CommandText = sp_PubsTest
'Establece el tipo de llamada de comando para que sea un procedimiento almacenado (adCmdSPStoredProc = 4)
CmdSP.CommandType = adCmdSPStoredProc
'Agregar parámetros al objeto de comando
'Defina el procedimiento almacenado para que tenga un valor de retorno directo y sea un número entero. El valor predeterminado es 4.
CmdSP.Parameters.Append CmdSP.CreateParameter(RETURN_VALUE, adInteger, adParamReturnValue, 4)
'Definir un parámetro de entrada de caracteres
CmdSP.Parameters.Append CmdSP.CreateParameter(@au_lname, adVarChar, adParaminput, 20, M)
'Definir un parámetro de entrada entero
CmdSP.Parameters.Append CmdSP.CreateParameter(@intID, adInteger, adParamInput,, iVal)
'Definir un parámetro de salida entero
CmdSP.Parameters.Append CmdSP.CreateParameter(@intIDOut, adInteger, adParamOutput, oVal)
'Ejecuta el procedimiento almacenado y obtiene el conjunto de registros devuelto
Establecer adoRS = CmdSP.Execute
'Imprime cada registro. Los campos son virtuales y pueden ignorarse.
Mientras no adoRS.EOF
para cada adoField en adoRS.Fields
Respuesta.Escribir adoField.Name & = & adoField.Value & <br> & vbCRLF
Próximo
Respuesta.Escribir<br>
adoRS.MoveNext
Encaminarse a
'Imprime dos valores de salida:
Respuesta.Escribir <p>@intIDOut = & CmdSP.Parameters(@intIDOut).Valor & </p>
Response.Write <p>Valor de retorno = & CmdSP.Parameters(RETURN_VALUE).Valor & </p>
'Limpieza general
Establecer adoRS = nada
Establecer CmdSP.ActiveConnection = nada
Establecer CmdSP = nada
%>
También hay otras formas, que son un poco más sesgadas, y de ellas hablaremos más adelante.
Este artículo hace referencia a muchos artículos que no se enumeran aquí.