Les cuento, estoy haciendo un programa de asignacion de asignaturas.
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:
<% 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
%>
//FUNCION DE VERIFICACION
Código:
<%
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
%>
-AL TRATAR DE ASIGNARLE UNA ASIGNATURA NO HAY PROBLEMA, ES DECIR, SOLO SELECCIONA AGREGAR UNA.
-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 =(