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

variables en bucle while

Estas en el tema de variables en bucle while en el foro de ASP Clásico en Foros del Web. Tengo un problema con la consulta while este es el codigo... tipo=Request.Form("tip") nombre=Request.Form("nom") cuenta=Request.Form("cue") parcial=Request.Form("par") muestra=parcial*5 sql2 = "SELECT * FROM ARTICULOS WHERE (CodTipo=" & ...
  #1 (permalink)  
Antiguo 27/11/2008, 08:19
 
Fecha de Ingreso: noviembre-2008
Mensajes: 6
Antigüedad: 16 años, 5 meses
Puntos: 0
Pregunta variables en bucle while

Tengo un problema con la consulta while este es el codigo...


tipo=Request.Form("tip")
nombre=Request.Form("nom")
cuenta=Request.Form("cue")
parcial=Request.Form("par")
muestra=parcial*5

sql2 = "SELECT * FROM ARTICULOS WHERE (CodTipo=" & tipo & ")"
set rec2 = Server.CreateObject("ADODB.Recordset")
set rec2 = con.execute(sql2)

posicion=0
while posicion<cuenta and not(rec2.eof)
rec2.movenext
posicion=posicion+1
wend

el fallo me da con la consulta "posicion<cuenta" del while.

posicion lo uso como contador para desplazarme por el registro.
cuenta es un contador del registro que se va incrementando conforme muestro los datos del registro y que voy pasando el valor de pagina a pagina.

en la misma pagina donde me da el error muestro los datos de las variables y el resultado es:
posicion 7 que es fin del registro
cuenta 6

con lo cual del while sale por fin de registro no por la consulta < y no entiendo porque.
  #2 (permalink)  
Antiguo 27/11/2008, 09:21
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 meses
Puntos: 126
Respuesta: variables en bucle while

Hola

Prueba así

Código asp:
Ver original
  1. sql2 = "SELECT * FROM ARTICULOS WHERE (CodTipo=" & tipo & ")"
  2. set rec2 = con.execute(sql2)
  3.  
  4. posicion=0
  5. while posicion > cuenta and not rec2.eof ' mientra posicion sea menor que cuenta
  6. posicion=posicion+1
  7. rec2.movenext
  8. wend

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 27/11/2008, 09:45
 
Fecha de Ingreso: noviembre-2008
Mensajes: 6
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: variables en bucle while

Gracias adler, por la idea.

Pero con tu consulta resulta que ya si hace caso a la condicion >, con lo cual el resultado es...
posicion=0
cuenta=6

es curioso de mi manera no hace caso a la condicion y con la tuya si pero no me vale asi porque no recorre el registro, una paradoja vaya.
  #4 (permalink)  
Antiguo 27/11/2008, 10:01
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
Respuesta: variables en bucle while

no hay paradoja, es el orden en que colocas la instruccion movenext
  #5 (permalink)  
Antiguo 27/11/2008, 10:38
 
Fecha de Ingreso: noviembre-2008
Mensajes: 6
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: variables en bucle while

Perdona muzztein pero no se si no te entiendo

he probado el orden de movenext dentro del bucle pero sigue sin dar resultado, por si es eso.
Y he puesto rec2.movefirst antes para asegurarme que empieza desde el primer registro pero sigue igual y el bucle se ejecuta hasta el final sin pararse en la condicion <.

Y lo q no entiendo es porque "posicion<cuenta". da resultado al salir del while 7<6
Y "posicion>cuenta" da resultado al salir del while 0>6
  #6 (permalink)  
Antiguo 27/11/2008, 13:28
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Respuesta: variables en bucle while

Muzztein se refiere a que te mueves te mueves te mueves en todo el RS
pero nunca cuentas
hasta que terminan los regisotr cuentas


en cambio alder

inicia cciclo
cuenta
regresa a inicio ciclo


suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #7 (permalink)  
Antiguo 28/11/2008, 04:26
 
Fecha de Ingreso: noviembre-2008
Mensajes: 6
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: variables en bucle while

Gracias por los consejos ya os entiendo, pero aun sigue mi problema, lo expongo un poco mejor.

Asi no tengo ningun problema el ciclo sale con posicion=6

Código:
posicion=0
while posicion<6 and not(rec2.eof)
		
	posicion=posicion+1
	rec2.movenext
		
wend
Pero asi no, siendo cuenta=6

Código:
posicion=0
while posicion<cuenta and not(rec2.eof)
		
	posicion=posicion+1
	rec2.movenext
		
wend
Asi el ciclo sale por fin de registro con posicion=7
  #8 (permalink)  
Antiguo 28/11/2008, 06:53
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 meses
Puntos: 126
Respuesta: variables en bucle while

Hola

Prueba con

Código asp:
Ver original
  1. posicion=0
  2. while posicion<CInt(cuenta) and not(rec2.eof)
  3.        
  4.     posicion=posicion+1
  5.     rec2.movenext
  6.        
  7. wend

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #9 (permalink)  
Antiguo 28/11/2008, 07:44
 
Fecha de Ingreso: noviembre-2008
Mensajes: 6
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: variables en bucle while

Ahora si, mil gracias adler

Lo que no llego a entender es porque a veces no hace falta poner eso y en otras si.

Por ejemplo mas abajo de esa, tengo otra consulta y he tenido que ponerlo en las dos variables, para que funcione:

Código:
<%while not(rec2.eof) and CInt(cuenta)<=CInt(muestra)%>
de todas formas gracias de nuevo.
  #10 (permalink)  
Antiguo 28/11/2008, 08:25
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 meses
Puntos: 126
Respuesta: variables en bucle while

Hola

Acostúmbrate a que cuando recogas un valor, especificar que tipo de valor es

CDate -- fecha
CStr -- texto
CInt -- número
.....

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #11 (permalink)  
Antiguo 28/11/2008, 10:43
 
Fecha de Ingreso: noviembre-2008
Mensajes: 6
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: variables en bucle while

ok, ya no se me olvidara seguro, con la de vueltas que le he dado al error.

gracias

Un saludo
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 17:15.