Stefan Falz: Bin am verzweifeln!!! Request in eigenem Querystring

Beitrag lesen

<%
Dim conn7
Dim rs7
Dim katwert

Response.Buffer = false
katwert = Request.Querystring("Kategorie")
Set conn7 = Server.CreateObject("ADODB.Connection")
conn7.Open g_FIXX_strConnectb
Set rs7 = Server.CreateObject("ADODB.Recordset")
query = "select * from kunden Where Ebene='Ebene1' AND Kategorie='" &katwert& "' AND Bannergroesse='Vollbanner'"
Set rs7 = conn7.Execute(query)
response.write query
%>
<a href="http://<%=rs7.Fields(7).Value%>" target="_blank"><img border="0" src="<%=rs7.Fields(4).Value%>"></a>
<%
rs7.Close
conn7.Close
%>

Wenn ich die Seite mit den entsprechenden Parametern starte kommt die Meldung:

Entweder BOF oder EOF ist True, oder der aktuelle DS wurde gelöscht; die von der Anwendung angeforderte Operation benötigt einen aktuellen DS

Hallo Martin,

generell sollte man den Fehler, daß kein DS gefunden wurde mit:
<%
If rs7.EOF Then
   ' --- Fehler, kein Satz
   Else
      ' --- Hier gehts weiter
      ...
End if
%>
abfangen. In Deinem Fall denke ich, daß der folgende Teil keinen Wert ergibt.

katwert = Request.Querystring("Kategorie")

Wir denn Kategorie als URL-Parameter übergeben?`
Probier mal
<% katwert = Request("Kategorie") %>

Dann nimmt ASP entweder den Parameter aus dem QueryString oder der Form-Collection (wenn die Daten per POST übermittelt wurden)

Noch eins: Bei einem Select Statement sollte man das Recorset nicht mit <% Set rs = conn.Execute(SQL) %> instantiieren.
Execute kann (und sollte) man bei DML-Statements (UPDATE, INSERT, DELETE, ...) verwenden.
Bei SELECT ist folgendes besser:
<%
Set RS = Server.CreateObject("ADODB.Recordset")
    RS.Open SQL, conn, 3, 3
    ...
    RS.Close
Set RS = Nothing
%>

Tschau, Stefan