Foros del Web » Programando para Internet » ASP Clásico »

Problema con una condición

Estas en el tema de Problema con una condición en el foro de ASP Clásico en Foros del Web. Hola foreros... tengo un problemilla que me tiene vuelto loco... y debe de ser una bobada, pero tengo algunas horas queriéndolo resolver y nada, no ...
  #1 (permalink)  
Antiguo 18/05/2010, 08:33
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 15 años, 7 meses
Puntos: 0
Exclamación Problema con una condición

Hola foreros... tengo un problemilla que me tiene vuelto loco... y debe de ser una bobada, pero tengo algunas horas queriéndolo resolver y nada, no veo el error...

Tengo una consulta la cual funciona bien, pero a la hora de recorrer con un RS los registros, pongo una condición para que en cierto momento me mande a otra consulta... pongo el código para que vean de qué hablo:

Código:
<%
for j=1 to 4
	DBresp.open "Select A.respuesta, B.Posrespuesta, B.Punpreg From ((Respuestas A left join Posrespuesta B on (A.Idpregunta = B.Idpregunta)) left join Preguntas C on (A.Idpregunta = C.Idpregunta)) left join Regcontestada D on (A.Idcont = D.Idcont) Where A.respuesta = '"& j &"' and  A.Idpregunta = "& i &" and B.Punpreg = "& j &"  and C.Idpregunta = "& i &" and D.Carrera = '"& idinst &"' Group By  A.respuesta, B.Posrespuesta, B.Punpreg", Con  'Where A.Idpregunta = 4 and B.Punpreg = 3 and C.Idpregunta = 4
	
	Do While not DBresp.eof
		'd = DBresp("Punpreg")
		If (DBresp("Punpreg") < 5) Then
			response.Write DBresp("Posrespuesta")
			DBresp.movenext
			%><br /><%
			flag = 1
		Else
			flag = 2	'<---- no entra cuando Punpreg > 4	
		End If
	loop
	DBresp.Close
Next

If (flag = 2) Then '<---- por lo tanto no se ejecuta
	for j=5 to 5
		DBresp.open "Select A.respuesta From (Respuestas A left join Regcontestada B on (A.Idcont = B.Idcont)) Where B.carrera ='"& idinst &"' and A.Idpregunta = "& i, Con
	
		Do While not DBresp.eof
			response.Write DBresp("respuesta") 
			DBresp.movenext
			%><br /><%
		loop	

		DBresp.Close
	Next
End If

%><br /><%			
Next
%>
pero como ven, cuando trato de ejecutar el ELSE, este pasa de largo y nada que me cambia la variable flag a 2.

¿Alguién que vea el error que no estoy viendo?

GRacias....
  #2 (permalink)  
Antiguo 18/05/2010, 11:22
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 2 meses
Puntos: 146
Respuesta: Problema con una condición

A veeeeeerrrrr...

Tienes como condición del query :

Cita:
Where A.respuesta = '"& j &"'
and A.Idpregunta = "& i &"
and B.Punpreg = "& j &"
and C.Idpregunta = "& i &"
Y tienes un FOR de 1 a 4, o sea que la variable "J" jamás valdrá más de 4 dentro del ciclo, ¿estamos de acuerdo?

Y te preguntas por qué no deja de cumplirse la condición If (DBresp("Punpreg") < 5), pues por que así lo programaste.

No analicé a profundidad el código, pero eso es lo que veo a golpe de vista.

Saludos
  #3 (permalink)  
Antiguo 18/05/2010, 11:32
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 15 años, 7 meses
Puntos: 0
De acuerdo Respuesta: Problema con una condición

Tienes toooooooooda la razón.... ..... la cosa de andar hasta el gorro....

lo hice de la siguiente manera:

Código:
If (d <= 4) Then
    response.Write DBresp("Posrespuesta")%><br /><%
    DBresp.movenext
    flag = 1
Else
    flag = 2
End If
y claro, funciona a la perfección... No cabe duda que las máquinas hacen lo que se les programa.... Saludos...

Gracias...

Etiquetas: condición
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:35.