ciao a tutti,
non conosco benissimo asp, ma volevo chiedervi un consiglio.
devo fare un ciclo for (30 giri) con dentro annidato un do while su un recordset che contiene 22 righe di tabella per stampare a video un calendario di un mese dato, popolato con i dati del recordset opportunamente lavorati.
Perché risulta molto lento nell'ordine di una ventina di secondi?
dove sbaglio?
GRAZIEEEE
di seguito il codice:
query = "SELECT A.[des_ragsoc], G.[cod_anagra] ,G.[anno] ,G.[mese] , CAST(G.giorno AS int) AS giorno ,G.[ore],G.[CDN_COMMS],G.[id] ,G.[SER_COMMS],G.[CDA_CLI],G.[des_ragsoc],C.[DES_COMMS] FROM [U_mesa_eSYS].[dbo].[XVW_GIORNIATTIVITA] as G INNER JOIN [U_mesa_eSYS].[dbo].[XVW_COMMESSE-R] AS C ON G.[CDN_COMMS] = C.[CDN_COMMS] INNER JOIN CA_ANAGRAFICHE AS A ON A.cod_anagra = G.cod_anagra WHERE G.[anno] = '"& annoappo &"' AND G.[mese] = '"& mese &"' AND G.cod_anagra = '" & session("cod_anagra") &"' AND A.cod_anagra = '" & session("cod_anagra") &"' ORDER BY giorno ASC;"
'response.write("dati: "&query)
'Response.end
Set RS_query = Server.CreateObject("ADODB.recordset")
set RS_query = objConn.Execute (query)
'################################################# ###################################
%>
<tr>
<td><%=RS_query(0)%></td>
<%
for ctCiclo = 1 to gg
contenuto = ""
RS_query.movefirst
do while not(RS_query.eof)
'contenuto = ""
'response.write(ctCiclo&" - "&RS_query("giorno")&"
")
if RS_query("giorno") = ctCiclo then
contenuto = contenuto & " " & RS_query("des_ragsoc") & " - "
elseif RS_query("giorno") > ctCiclo then
'response.write("uscita
")
exit do
end if
RS_query.movenext
loop%>
<td><%
if len(contenuto) >= 1 and right(contenuto,3) = " - " then
contenuto = mid(contenuto,1,len(contenuto)-3)
end if
response.write(contenuto)
%></td>
<% next %>
</tr></table>

Rispondi quotando