Ho un file asp che mostra i risultati di una query fatta con una stored procedures. I risultati vengono suddivisi su tre colonne e la stored procedures oltre ad estrarre 6 record (immagini) li randomizza.
Però ho notato che a volte quando faccio il refresh della pagina asp che mostra i risultati non sempre vengono caricati tutti e sei, ma a volte ne carica 2 o 3 ma normalmente sono 6.
Il mio dubbio è che ci possa essere qualche errore nel codice anche se la pagina asp funziona senza riportare alcun errore. Da cosa potrebbe dipendere questo piccolo problema?
Posto sia file asp che la stored procedure:
<% response.expires=0 %>
<!--#include virtual="/include/inc_functions.asp"-->
<%
Dim rsFiles
Dim cnFiles
Dim contatore
Set cnFiles = Server.CreateObject("ADODB.Connection")
Set rsFiles = Server.CreateObject("ADODB.Recordset")
cnFiles.Open Application("Database")
rsFiles.Open "Users_Random ", cnFiles, adOpenStatic, adLockReadOnly
If Not rsFiles.EOF Then
%>
<table border="0">
<tr>
<%
contatore = 0
While rsFiles.EOF = False
If contatore = 3 Then
contatore = 0
Response.Write "</tr><tr>"
End If
%>
<TD><A HREF="view_profile.asp?userid=<%=rsFiles("UserID")%>"><img src="../public/<%=rsFiles("FileID")%>.<%=rsFiles("FileType")%>" width="63" height="65" alt="<%=rsFiles("ScreenName")%>"></a></TD>
<%
rsFiles.MoveNext
contatore = contatore + 1
Wend
rsFiles.Close
End if
%>
</tr>
</table>
<%
Set rsFiles = Nothing
cnFiles.Close
Set cnFiles = Nothing
%>
_______________________________________________
E la stored procedure è la seguente:
CREATE PROCEDURE Users_Random
AS
BEGIN
Declare @MaxValue int, @RandomNumber float
SELECT @MaxValue = Max(UserID) FROM Users U
SELECT @RandomNumber = rand() * @MaxValue
SELECT TOP 6 *, F.*, U.*, FT.FileType
FROM Files F
INNER JOIN FileTypes FT ON FT.FileTypeID = F.FileTypeID
INNER JOIN Users U ON U.UserID = F.UserID
WHERE F.UserID>= @RandomNumber AND F.PrimaryImage = 1
ORDER BY NewID()
END
_________________________________________
Qualche suggerimento?
Grazie.
Però ho notato che a volte quando faccio il refresh della pagina asp che mostra i risultati non sempre vengono caricati tutti e sei, ma a volte ne carica 2 o 3 ma normalmente sono 6.
Il mio dubbio è che ci possa essere qualche errore nel codice anche se la pagina asp funziona senza riportare alcun errore. Da cosa potrebbe dipendere questo piccolo problema?
Posto sia file asp che la stored procedure:
<% response.expires=0 %>
<!--#include virtual="/include/inc_functions.asp"-->
<%
Dim rsFiles
Dim cnFiles
Dim contatore
Set cnFiles = Server.CreateObject("ADODB.Connection")
Set rsFiles = Server.CreateObject("ADODB.Recordset")
cnFiles.Open Application("Database")
rsFiles.Open "Users_Random ", cnFiles, adOpenStatic, adLockReadOnly
If Not rsFiles.EOF Then
%>
<table border="0">
<tr>
<%
contatore = 0
While rsFiles.EOF = False
If contatore = 3 Then
contatore = 0
Response.Write "</tr><tr>"
End If
%>
<TD><A HREF="view_profile.asp?userid=<%=rsFiles("UserID")%>"><img src="../public/<%=rsFiles("FileID")%>.<%=rsFiles("FileType")%>" width="63" height="65" alt="<%=rsFiles("ScreenName")%>"></a></TD>
<%
rsFiles.MoveNext
contatore = contatore + 1
Wend
rsFiles.Close
End if
%>
</tr>
</table>
<%
Set rsFiles = Nothing
cnFiles.Close
Set cnFiles = Nothing
%>
_______________________________________________
E la stored procedure è la seguente:
CREATE PROCEDURE Users_Random
AS
BEGIN
Declare @MaxValue int, @RandomNumber float
SELECT @MaxValue = Max(UserID) FROM Users U
SELECT @RandomNumber = rand() * @MaxValue
SELECT TOP 6 *, F.*, U.*, FT.FileType
FROM Files F
INNER JOIN FileTypes FT ON FT.FileTypeID = F.FileTypeID
INNER JOIN Users U ON U.UserID = F.UserID
WHERE F.UserID>= @RandomNumber AND F.PrimaryImage = 1
ORDER BY NewID()
END
_________________________________________
Qualche suggerimento?
Grazie.
Ultima modifica: