Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/01/2007, 12:41
Avatar de andre_cl
andre_cl
 
Fecha de Ingreso: enero-2007
Ubicación: STGO - CHILE
Mensajes: 51
Antigüedad: 18 años, 3 meses
Puntos: 0
Problema con ASP - Split - MSSQL

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 =(