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

Problema SQL

Estas en el tema de Problema SQL en el foro de ASP Clásico en Foros del Web. Tengo un problemilla. Trabajo con bases de datos, en las que almaceno info relativa a imagenes (path, id, etc.). Y he creado, así, un visor ...
  #1 (permalink)  
Antiguo 08/04/2004, 18:09
Avatar de meru-kun  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 854
Antigüedad: 22 años, 5 meses
Puntos: 0
Problema SQL

Tengo un problemilla.
Trabajo con bases de datos, en las que almaceno info relativa a imagenes (path, id, etc.). Y he creado, así, un visor de esas imagenes.

Tengo un botón siguiente, y otro anterior. Para saber cuando no existe una imagen Siguiente, dentro de la misma categoria anime_id, he hecho una sql de la forma:

Código:
strSQL = "SELECT ANIME_ID FROM GAMES_GALL
 WHERE IMAG_ID=" & intID + 1 & " AND ANIME_ID=" & intAID
 Set mr2 = MyConn.Execute(strSQL)
  If mr2.eof or mr2.bof then 
intVarSig = 1 else intVarAnt = 0
Sin embargo, esto solo funciona si he introducido las imags en la DB de forma correlativa, es decir, con su imag_id 1, 2, 3, ...

Si tengo, por ejemplo, dentro de un anime_id=1, id = 1, 2, 3, 5, 6 ... cuando llego a la imagen id=3, con la consulta sql me devuelve que no hay una imagen siguiente, por que no existe una imagen con id=4 ... aunque si una con id=5 que debería se rmostrada ...

¿Como puedo salvar este problema?

Espero haberme expresado bien.
Pueden ver un ejemplo del problema que les explico en la web.
Aqui pueden ver que parece que no hay imagen siguiente, sin embargo, si pinchan en Volver a Galeria, verán como hay muchas más.

Gracias por su ayuda!
__________________
Tu portal de manga y anime.
  #2 (permalink)  
Antiguo 08/04/2004, 19:39
 
Fecha de Ingreso: diciembre-2001
Mensajes: 199
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Problema SQL

Cita:
Mensaje Original por meru-kun
Tengo un problemilla.
Trabajo con bases de datos, en las que almaceno info relativa a imagenes (path, id, etc.). Y he creado, así, un visor de esas imagenes.

Tengo un botón siguiente, y otro anterior. Para saber cuando no existe una imagen Siguiente, dentro de la misma categoria anime_id, he hecho una sql de la forma:

Código:
strSQL = "SELECT ANIME_ID FROM GAMES_GALL
 WHERE IMAG_ID=" [B]& intID + 1 & 
Código:
   " AND ANIME_ID=" & intAID
 Set mr2 = MyConn.Execute(strSQL)
  If mr2.eof or mr2.bof then 
intVarSig = 1 else intVarAnt = 0
Sin embargo, esto solo funciona si he introducido las imags en la DB de forma correlativa, es decir, con su imag_id 1, 2, 3, ...

Si tengo, por ejemplo, dentro de un anime_id=1, id = 1, 2, 3, 5, 6 ... cuando llego a la imagen id=3, con la consulta sql me devuelve que no hay una imagen siguiente, por que no existe una imagen con id=4 ... aunque si una con id=5 que debería se rmostrada ...

¿Como puedo salvar este problema?

Espero haberme expresado bien.
Pueden ver un ejemplo del problema que les explico en la web.
Aqui pueden ver que parece que no hay imagen siguiente, sin embargo, si pinchan en Volver a Galeria, verán como hay muchas más.

Gracias por su ayuda! [/B]




CReo que ahí (en la parte resaltada) está tu problema... si tienes una imagen con la id=3 y luego haces la busqueda comparando tu imagen anterior + 1 .. osea la imagen de id=3 +1 osea la imagen con id 4 y no está, obvio que te dirá que no hay siguiente

yo seleccionaria
y pondría
if rs.eof=false then
rs.movenext
variable_con_id_siguiente=rs("id")
else
variable_con_id_siguiente="no hay imagen sgte"
end if


bueno algo asi eso se me ocurre con la neurona bastante adormecida... espero que te sirva

Última edición por forastero; 08/04/2004 a las 19:42
  #3 (permalink)  
Antiguo 09/04/2004, 20:37
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Pues si, la otra podría ser evitar poner campos autonuméricos que muy probablemente es lo que estás haciendo(esto jugando un poco al adivino je je) porque a la hora de borrar los registros, pues elimina ese id...

Lo que yo haría es recrear el campo de id como numérico y hazte una función que te devuelva siempre el id más alto antes de hacer una incersión.

Para borrar registros, si los borras de manera múltiple, calculas la cantidad de registros y le restas la que vas a eliminar, después actualizas en forma descendente de acuerdo a este ciclo, de esta manera siempre tendrás tus registros en consecutivo.

Salu,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #4 (permalink)  
Antiguo 10/04/2004, 07:12
Avatar de meru-kun  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 854
Antigüedad: 22 años, 5 meses
Puntos: 0
Al final, y como por arte de magia, me vino la solución a la cabeza ^^.

Simplemente, cambie la sql. La mandé recoger la IMAG_ID más alta y la IMAG_ID más baja. Luego, simlemente, comparaba la IMAG_ID más alta/baja con la actual, y así podía determinar si la actual era la última/primera.

Ahora ya se puede navegar tranquilamente ^^.

Muchas gracias por su ayuda!
__________________
Tu portal de manga y anime.
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 15:36.