Du erzeugst in Deiner DO until LOOP Schleife 3 x den SQLString 3x das
Recordset etc.
unn�tig oder :-)
Besser so:
'On Error resume Next '// Erst mal nicht verwenden
ConnSQL = "SELECT * FROM Banner WHERE BannerID = " & Session("ID") + 1
rs.Open ConnSQL, Conn
i = 0
DO until i = 3
IF rs("Guthaben") = 0 THEN
Session("ID") = rs("BannerID") + 1
ELSE
Response.Write "<A HREF='redirect.asp?BannerID=" &
rs("BannerID") &
"&URL=" & rs("URL") & "' TARGET='_blank'>"
Response.Write "<IMG SRC='" & rs("Bild") & "'
BORDER='0'>"
Response.Write "</A><BR>"
Session("ID") = rs("BannerID")
IF Session("ID") = nDS THEN
Session("ID") = 0
END IF
Response.Write "Session ID Schlu�: " & Session("ID") &
"<BR>"
rs("Views") = rs("Views") + 1
rs("Guthaben") = rs("Guthaben") - 1
rs.Update
i = i + 1
END IF
LOOP
rs.Close
Set rs = Nothing
oder Du arbeitest noch mit dem ClientSideCursor
Set objRS = Server.CreateObject("ADODB.Recordset")
strSQLStmt = "SELECT * FROM Suppliers"
strConn = "Provider=SQLOLEDB;server=bigmac;uid=sa;pwd=;Initial
Catalog=DeinDB;"
objRS.CursorLocation = adUseClient
objRS.CursorType = adOpenStatic
objRS.LockType = adLockBatchOptimistic
objRS.Open strSQLStmt, strConn
Set objRS.ActiveConnection = Nothing
Gru� J�rg
-----Urspr�ngliche Nachricht-----
Von: Stefan H�sler [mailto:[EMAIL PROTECTED]]
Gesendet: Samstag, 17. November 2001 13:42
An: ASP Datenbankprogrammierung
Betreff: [aspdedatabase] Langsames Script
Hallo!
Ich habe hier ein Script, das zwar funktioniert aber f�rchterlich langsam
ist. Dauert am PWS bis zu 2 Minuten, bis eine Seite aufgebaut ist.
Ich vermute, es liegt an:
...
IF rs("Guthaben") = 0 THEN
Session("ID") = rs("BannerID") + 1
ELSE
...
bin mir aber nicht sicher. Kann sich das bitte mal jemand ansehen und mir
sagen, warum das Ding so langsam ist und wie ich das besser machen k�nnte?
Danke
Stefan
--- SCRIPT ---
<%@ Language=VBScript %>
<%
Response.Buffer=True
IF Session("ID") = "" THEN
Session ("ID") = 0
END IF
Response.Write "Session ID Start: " & Session("ID") & "<BR>"
%>
<!-- #include file="connection.asp" -->
<%
' 3 Banner anzeigen
i = 0
DO until i = 3
On Error resume Next
ConnSQL = "SELECT * FROM Banner WHERE BannerID = " & Session("ID") + 1
rs.Open ConnSQL, Conn
IF rs("Guthaben") = 0 THEN
Session("ID") = rs("BannerID") + 1
ELSE
Response.Write "<A HREF='redirect.asp?BannerID=" &
rs("BannerID") &
"&URL=" & rs("URL") & "' TARGET='_blank'>"
Response.Write "<IMG SRC='" & rs("Bild") & "' BORDER='0'>"
Response.Write "</A><BR>"
Session("ID") = rs("BannerID")
IF Session("ID") = nDS THEN
Session("ID") = 0
END IF
Response.Write "Session ID Schlu�: " & Session("ID") & "<BR>"
rs("Views") = rs("Views") + 1
rs("Guthaben") = rs("Guthaben") - 1
rs.Update
i = i + 1
END IF
rs.Close
LOOP
' Verbindung schlie�en
conn.Close
Set rs=Nothing
Set conn=Nothing
%>
--- SCRIPT ---
| [aspdedatabase] als [EMAIL PROTECTED] subscribed
| http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp
| [aspdedatabase] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp