Recomendado: use ASP para implementar el sistema de examen en línea Con el desarrollo de la tecnología de Internet, la enseñanza en línea se convertirá en la forma principal de reeducación de personas y educación para toda la vida. En las escuelas en línea, las personas pueden elegir cualquier curso en cualquier lugar, en cualquier lugar sin estar restringido por el tiempo y el espacio. El desarrollo de las escuelas en línea propone el desarrollo de exámenes en línea
5. Valor de retornoEl procesamiento de los valores de retorno de la función es diferente del procesamiento de procedimientos almacenados, lo que a menudo conduce a la confusión. En las funciones, a menudo se devuelve un valor booleano para indicar si la función se ejecuta con éxito o no.
Si SomeFunctionName () = True entonces
'FUNCIÓN Sucedió
Sin embargo, al llamar a un procedimiento almacenado, no se puede usar el mismo método porque el almacenamiento se ejecuta con el método Ejecutar y devuelve un conjunto de registros.
Establecer rsauthors = cmdauthors.execute
Si no puede obtener un valor de devolución, ¿cómo determina si el procedimiento almacenado se ha ejecutado correctamente? Cuando se produce un error, se informa un error para que el código de manejo de errores proporcionado en el capítulo anterior se pueda usar para manejar el error. Pero, ¿qué hacer con algunos errores lógicos no fatales?
Por ejemplo, considere agregar un nuevo empleado a la tabla de empleados. Es posible que no desee evitar que dos empleados tengan el mismo nombre, pero desea indicar esta situación. Luego, se puede usar un valor de retorno para indicar si ya existe un empleado con el mismo nombre. El procedimiento almacenado es el siguiente:
Crear procedimiento USP_AdDemployee
@Emp_id char (9),
@Fname varchar (20),
@Minit char (1),
@Lname varchar (30),
@Job_id Smallint,
@JOB_LVL TINYINT,
@Pub_id char (4),
@Hire_Date DateTime
COMO
COMENZAR
Declarar @Exists int - Valor de retorno
- Vea si existe un empleado con el mismo nombre
Si existe (seleccione *
Del empleado
Donde fname = @fname
Y minit = @minit
Y lname = @lname)
Seleccionar @Exists = 1
DEMÁS
Seleccionar @Exists = 0
Insertar en el empleado (emp_id, fname, minit, lname,
JOB_ID, JOB_LVL, PUB_ID, HIRE_DATE)
Valores (@emp_id, @fname, @minit, @lname, @job_id,
@JOB_LVL, @pub_id, @hire_date)
Regresar @Exists
FIN
El proceso primero verifica si hay empleados con el mismo nombre y establece la variable correspondiente existe en consecuencia. Si existe el mismo nombre, se establece en 1, de lo contrario es 0. Luego agregue el personal a la tabla y devuelva el valor de existe como el valor de retorno.
Tenga en cuenta que aunque se devuelve un valor, no se declara como un parámetro para el procedimiento almacenado.
El código ASP que llama a este procedimiento es el siguiente:
<!-#include file = ../include/conexión.asp->
<%
Dim CMDemployee
Dim lngrecs
Dim Lngadded
Establecer cmdemployee = server.CreateObject (ADODB.COMMAND)
'Establezca las propiedades del comando
Con cmdemployee
.Activeconnection = strconn
.CommandText = USP_AdDemployee
.CommandType = ADCMDStoredProc
'Crea los parámetros
'Observe que el valor de retorno es el primer parámetro
.Parameters.append .CreateParameter (return_value, adintager, _
AdparamreturnValue)
.Parameters.Append .CreateParameter (@emp_id, adchar, adparamInput, 9)
.Parameters.Append .CreateParameter (@fname, advarwchar, adparamInput, 20)
.Parameters.Append .CreateParameter (@minit, adchar, adparamInput, 1)
.Parameters.Append .CreateParameter (@lname, advarwchar, adparamInput, 30)
.Parameters.Append .CreateParameter (@JOB_ID, adsmallint, adparamInput)
.Parameters.Append .CreateParameter (@JOB_LVL, AdunsignedTinyInt, AdparamInput)
.Parameters.Append .CreateParameter (@pub_id, adchar, adparamInput, 4)
.Parameters.Append .CreateParameter (@hire_date, addbtimestamp, _
adparaminput, 8)
'Establezca los valores de los parámetros
.Parameters (@emp_id) = request.form (txtempid)
.Parameters (@fname) = request.form (txtFirstName)
.Parameters (@minit) = request.form (txtinitial)
.Parameters (@lname) = request.form (txtLastName)
.Parameters (@Job_id) = request.form (LSTJOBS)
.Parameters (@Job_Lvl) = request.form (txtJoBlevel)
.Parameters (@pub_id) = request.form (LSTPublisher)
.Parameters (@hire_date) = request.form (txThiredate)
'Ejecute el procedimiento almacenado
.ExCute lngrecs, AdexecUteRecords
'Extraer el valor de retorno
lngadded = .Parameters (return_value)
Terminar con
Respuesta.WRITE NUEVO empleado agregado. <P>
Si lngadded = 1 entonces
Respuesta. Escribe a un empleado con el mismo nombre ya existe.
Final si
Establecer cmdemployee = nada
%>
Cabe señalar que el valor de retorno debe crearse como el primer parámetro en el conjunto. Incluso si el valor de retorno no aparece como un parámetro en el procedimiento almacenado, siempre son los primeros parámetros en la colección de parámetros.
Compartir: programación avanzada ASP 3.0 (treinta y seis) Capítulo 8 Conceptos básicos de ADO En los primeros 7 capítulos de este libro, ya ha hablado sobre el contenido de ASP y cómo ASP aporta contenido dinámico al sitio web. Se ha visto que su programa de secuencias de comandos permite páginas web personalizadas, lo que nos permite construir páginas ASP más potentes. Ahora, ASP será estudiado