El proceso es seleccionar las asignaturas (checkbox) y luego el sistema revisa si cumple los requisitos para aprobarla, si los cumple muestra la asignatura para luego insertarla y las que no se pudieron porque habian problemas de requisitos.
El proceso de inicia cuando selecciona las asignaturas que desea insertar(textbox) y luego lo envia a la pagina donde verifica si es posible o no su inscripcion:
Código:
//FUNCION DE VERIFICACION<% Dim ins Dim sins,i,resulta,dni,periodo,curso sins=Request.QueryString("c_grado") ins=split(sins,",") dni=InfoAl.Fields.Item("user_dni").Value periodo=infoU.Fields.Item("info_periodo").Value For i = LBound(ins) TO UBound(ins) curso=ins(i) 'LLAMA A FUNCION DE VERIFICACION resulta=filtros(dni,curso,periodo) If resulta=1 Then 'MUESTRA QUE SE PUEDE AGREGAR inscribe(curso) End If If resulta=0 Then 'muestra que no es viable errorsplash(curso) End If Next %>
Código:
-AL TRATAR DE ASIGNARLE UNA ASIGNATURA NO HAY PROBLEMA, ES DECIR, SOLO SELECCIONA AGREGAR UNA.<% Function filtros(dni,curso,periodo) Dim Chequeo1__Curso Chequeo1__Curso = curso Dim prereq,existepr,nota filtros=0 set Chequeo1 = Server.CreateObject("ADODB.Command") Chequeo1.ActiveConnection = MM_UXXI_STRING Chequeo1.CommandText = "dbo.CHEQ" Chequeo1.CommandType = 4 Chequeo1.CommandTimeout = 0 Chequeo1.Prepared = true Chequeo1.Parameters.Append Chequeo1.CreateParameter("@RETURN_VALUE", 3, 4) Chequeo1.Parameters.Append Chequeo1.CreateParameter("@Curso", 3, 1,4,Chequeo1__Curso) set Ch1 = Chequeo1.Execute Ch1_numRows = 0 prereq=Ch1.Fields.Item("as_prerequisitos").Value existepr=Ch1.Fields.Item("as_exist_prereq").Value If existepr=0 Then filtros=1 End if If existepr<>0 Then Dim Chequeo2__dni,Chequeo2__prereq Chequeo2__dni = dni Chequeo2__prereq = prereq set Chequeo2 = Server.CreateObject("ADODB.Command") Chequeo2.ActiveConnection = MM_UXXI_STRING Chequeo2.CommandText = "dbo.CHEQ2" Chequeo2.CommandType = 4 Chequeo2.CommandTimeout = 0 Chequeo2.Prepared = true Chequeo2.Parameters.Append Chequeo2.CreateParameter("@RETURN_VALUE", 3, 4) Chequeo2.Parameters.Append Chequeo2.CreateParameter("@dni", 200, 1,20,Chequeo2__dni) Chequeo2.Parameters.Append Chequeo2.CreateParameter("@prereq", 3, 1,4,Chequeo2__prereq) set Ch2 = Chequeo2.Execute Ch2_numRows = 0 nota=Ch2.Fields.Item("ins_cal_final").Value Ch2.Close() Set Ch2 = Nothing If nota>39 Then filtros=1 End If End If Chequeo1.Exit() Ch1.Close() Set Ch1 = Nothing End Function %>
-PERO AL SELECCIONAR MAS DE UNA ARROJA EL SIGUIENTE PROBLEMA: Tipo de error:
ADODB.Field (0x800A0BCD)
El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro actual.
En la Linea de: prereq=Ch1.Fields.Item("as_prerequisitos").Value (FUNCION VERIFICACION)
Realmente No se cual es el problema =(, quizas este en la recepcion del String con los checkbox para cortarlos e insertarlos en un arreglo. O quizas la llamada de los precedures donde es muy consecutiva... No se realmente =(