ASP - Recordset dentro de otro query en asp

 
Vista:

Recordset dentro de otro query en asp

Publicado por Daniela (9 intervenciones) el 07/07/2008 00:33:07
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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Recordset dentro de otro query en asp

Publicado por weirdmix (210 intervenciones) el 16/07/2008 17:52:48
al parecer no estas recreando la query al recorrer el arreglo, debes de poner el codigo completo y no en trozos para entender bien lo q estas haciendo.

yo te recomendaria q mejor vaciaras el primer recordset dentro de un arreglo para despues recorerlo e ir armando la nueva query con los datos del arreglo para luego consultarlos.
Esto se hace mas o menos asi:

'primero verificas q el recordset tiene datos, luego lo vacias en un arreglo
if not rsCierreGrupos.eof then
arrDatos = rsCierreGrupos.getrows()
rsCierreGrupos.close
'aqui ya recorres el arreglo y vas creando y pintado el nuevo query
for i=0 to ubound(arrDatos,2) 'tiene q ser la segunda dimension para el o. de registros
sqlCasosCuota="Select count(*) as casos from grupo_y_orden where left(grupo_orden,4) = '" & arrData(0,i) & "' and cod_conce = '"&dealer&"'"
response.write(sqlCasosCuota)
next
end if

Checalo a ver q te parece, si funciona asi solo tendrias q pasarle la query al otro recordset, no te olvides de cerrarlo antes de comenzar la nueva pasada del ciclo.

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Recordset dentro de otro query en asp

Publicado por Daniela (9 intervenciones) el 17/07/2008 14:21:27
Muchas gracias weirdmix !!! Ya lo resolví como dijiste al principio, es decir, recreando la query al recorrer el recordset. De todas formas, me voy a anotar lo del vector porque no trabajo mucho con vectores y me puede servir.

Muchas gracias! Saludos,
Daniela
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar