Datensätze pro Seite mit mySQL
.:thomas:.
- asp.net
Hallo,
ich spiele gerade mit dem Script von Stefan falz herum, wie man eine bestimmte Anzahl von Datensätzen anzeigen lassen kann und die nächsten auf einer weiteren Seite.
Funktioniert auch wunderbar, solange ich eine Access-DB benutze. Versuche ich das ganze mit mySQL so bekomme ich folgende Fehlermeldung:
"Current Recordset does not support bookmarks. This may be a limitation of the provider or of the selected cursortype."
Was mache ich falsch? Ich hänge mal zum durschauen meine ASP Seite mit an diesen Thread.
Schon mal Danke an alle...
<%
' --- Erstellen der Datenbankverbindung
myDSN = "Driver={MySQL};" & _
"DATABASE=cd-base;" & _
"SERVER=192.168.123.123;" & _
"PORT=3306;UID=meinname;" & _
"PWD=meinpasswort;"
set objConn=server.createobject("adodb.connection")
objConn.open myDSN
' --- SQL-Statement erstellen
Dim SQL
SQL = "SELECT * FROM cd"
' --- Definieren der Seitengröße (Anzahl Datensätze pro Seite)
Dim PageSize
PageSize = 5
' --- Initialisieren des Counters
Dim intCounter
intCounter = 1
' --- Einstellen der aktuellen Seite, weitere Prüfung
' --- erfolgt nach Öffnen des Recordsets
Dim AbsolutePage
AbsolutePage = Request("PN")
' --- Erstellen des Recordsets
Set objRS = Server.CreateObject("ADODB.Recordset")
' --- Zuweisen der Seitengröße (Anzahl Datensätze pro Seite)
' --- Diese Zuweisung muss vor dem Öffnen des Recordsets erfolgen.
objRS.PageSize = PageSize
objRS.CacheSize = PageSize
' --- Öffnen des Recordsets
objRS.Open SQL, objConn, 3, 3
' --- Prüfen, ob die angegebene Seitennummer verwendet werden kann
If AbsolutePage = "" Or Not IsNumeric(AbsolutePage) Or CInt(AbsolutePage) > CInt(objRS.PageCount) Then
AbsolutePage = 1
End if
' --- Zuweisen der aktuellen Seite. Diese Zuweisung
' --- muss nach dem Öffnen des Recordsets erfolgen
objRS.AbsolutePage = AbsolutePage
' --- x Datensätze anzeigen. Prüfung auf EOF (letzter Datensatz)
' --- und Anzahl der bisher ausgegebenen Datensätze (intCounter)
' --- muss erfolgen, da ansonsten zuviele Datensätze ausgegeben werden
Do While Not objRS.EOF And intCounter <= PageSize
' --- Ausgabe des aktuellen Datensatzes
Response.Write objRS.Fields("test") & "<br>"
' --- Erhöhen des Zählers zum Ermitteln der bisher ausgegebenen Datensätze
intCounter = intCounter + 1
' --- Weiter zum nächsten Datensatz
objRS.MoveNext
Loop
' --- Erstellen der Links auf die weiteren Seiten
For intPageCounter = 1 To objRS.PageCount
' --- Die aktuelle Seite wird nicht mehr verlinkt
If CInt(intPageCounter) = CInt(AbsolutePage) Then
Response.Write intPageCounter & " "
Else
Response.Write "<a href=""listpages.asp?PN=" & intPageCounter & """>" & intPageCounter & "</a> "
End if
Next
' --- Schliessen und terminieren des Recordsets
objRS.Close
Set objRS = Nothing
' --- Schliessen und terminieren der Datenbankverbindung
objConn.Close
Set objConn = Nothing
%>
Hallo,
ich spiele gerade mit dem Script von Stefan falz herum, wie man eine bestimmte Anzahl von Datensätzen anzeigen lassen kann und die nächsten auf einer weiteren Seite.
Mit dem aus dem ASP Codebook? Wenn ja, nimm doch einfach das
Beispiel für MySQL (gibts nämlich aus bestimmten Gründen ein
eigenes Skript für).
Hallo Stefan,
ja, habe ich aus dem Buch. Nur leider ist dieses in der Arbeit und ich zu Hause.
Kannst du mir nochmal helfen? Danke.