• Jueves 7 de Noviembre de 2024, 23:37

Autor Tema:  Recordset dentro de otro query en asp  (Leído 2417 veces)

dcugat

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Recordset dentro de otro query en asp
« en: Lunes 7 de Julio de 2008, 00:37 »
0
Hola gente! Espero que puedan ayudarme. Hace varios días estoy trabada con un reporte que estoy haciendo en asp. El tema es el siguiente: Tengo que hacer varios queries para luego mostrar todos los resultados juntos en una tabla html, por eso tengo un loop que recorre un recordset para ir cambiando los datos a mostrar, pero no sè por qué motivo el recordset no avanza, calculo que no se debe poder llamar a un recordset desde un query? Les muestro el código a ver si con eso me explico mejor:

Este es el query con el cual abro el recordset llamado rsCierreGrupos: sqlCierreGrupos="Select DATEADD(month, meses, mes_inicio) as f_cierre, grupo FROM grupo where DATEADD(month, meses, mes_inicio) >= '" &fecha& "' and DATEADD(month, meses, mes_inicio) <= getdate() ORDER BY 1"
donde fecha es una variable que se envía por un form.

Este es el query que luego utilizo para mostrar los datos en la tabla html (el recordset se llama rsCasosCuota):
sqlCasosCuota="Select count(*) as casos from grupo_y_orden where left(grupo_orden,4) = '" &rsCierreGrupos("grupo")& "' and cod_conce = '"&dealer&"'"
donde dealer es una variable que se envía por un form.

Luego, estoy tratando de debuggear el asp para ver donde esta el error, y para esto muestro lo siguiente:
while rsCierreGrupos.eof = false
response.write rsCierreGrupos("f_cierre")&"-"&rsCierreGrupos("grupo")&"<br>"
response.write "casos cuota: " & sqlCasosCuota & "<br>"
response.write "casos cuota " & rsCasosCuota("casos") & "<br><br>"
rsCierreGrupos.movenext
wend

El sitio me muestra lo siguiente:

01/01/2007-5565
casos cuota: Select count(*) as casos from grupo_y_orden where left(grupo_orden,4) = '5565' and cod_conce = '00062'
casos cuota 0

01/01/2007-5566
casos cuota: Select count(*) as casos from grupo_y_orden where left(grupo_orden,4) = '5565' and cod_conce = '00062'
casos cuota 0

01/01/2007-5567
casos cuota: Select count(*) as casos from grupo_y_orden where left(grupo_orden,4) = '5565' and cod_conce = '00062'
casos cuota 0

01/01/2007-5568
casos cuota: Select count(*) as casos from grupo_y_orden where left(grupo_orden,4) = '5565' and cod_conce = '00062'
casos cuota 0


Lo cual significa que: si bien el recordset rscierregrupos avanza, cuando lo llamo desde el query, me trae siempre el mismo grupo, como si el recordset no avanzara. Siempre repite el grupo 5565... cuando tendria que mostrar 5565, 5566, 5567, 5568... que es lo que hay en la base de datos....

Espero haberme explicado bien y que me puedan ayudar... Mil gracias! Daniela.

posman

  • Miembro MUY activo
  • ***
  • Mensajes: 119
    • Ver Perfil
Re: Recordset dentro de otro query en asp
« Respuesta #1 en: Lunes 7 de Julio de 2008, 21:45 »
0
Si la segunda sentencia de sql

Código: Text
  1. sqlCasosCuota="Select count(*) as casos from grupo_y_orden where left(grupo_orden,4) = '" &rsCierreGrupos("grupo")& "' and cod_conce = '"&dealer&"'"
  2.  
la estas asignando una sola vez fuera del ciclo, entonces nunca va a cambiar.

Que pasa si intentas esto:

Código: Text
  1.  
  2. while rsCierreGrupos.eof = false
  3.    response.write rsCierreGrupos("f_cierre")&"-"&rsCierreGrupos("grupo")&"<br>"
  4.    sqlCasosCuota="Select count(*) as casos from grupo_y_orden where left(grupo_orden,4) = '" &rsCierreGrupos("grupo")& "' and cod_conce = '"&dealer&"'"
  5.    response.write "casos cuota: " & sqlCasosCuota & "<br>"
  6.    response.write "casos cuota " & rsCasosCuota("casos") & "<br><br>"
  7.    rsCierreGrupos.movenext
  8. wend
  9.  
  10.  

dcugat

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Recordset dentro de otro query en asp
« Respuesta #2 en: Jueves 17 de Julio de 2008, 14:28 »
0
Muchas gracias posman!!! Ya lo resolví, efectivamente, me faltaba recrear el query dentro del loop. Muchas gracias, saludos!
Daniela