HILFE, nur 5 Datensätze einlesen funktioniert nicht!!
stephan
- asp.net
Hallo!
Ich schaffs einfach nicht nur 5 Datensätze pro Seite aus meiner DB auszulesen. Hab mir auch schon den Forumsbeitrag vom seppi durchgelesen, das funktioniert aber auch nicht.
Kann mir da bitte wer weiterhelfen? Es wäre wirklich sehr wichtig für mich und unsere Firma.
Hier ist mein ASP-Code:
"...
rsboerse.Open cmdboerse, , 1, 3
rsboerse.PageSize = 5
Do While Not rsboerse.EOF %>"
Gruß und Dank,
Stephan
Hallo Stefan!
Ich benutze dafür immer : rsboerse.MaxRecords = 5
Bis dann
Alex
Hallo Stefan!
Ich benutze dafür immer : rsboerse.MaxRecords = 5
Bis dann
Alex
Wenn ich es mit MaxRecords versuche erhalte ich folgende Fehlermeldung:
"ADODB.Recordset-Fehler '800a0e79'
Die von der Anwendung angeforderte Operation ist für ein geöffnetes Objekt nicht erlaubt. "
Was ist da falsch?
Danke,
Stephan
Hallo Stephan!
Verwende rs.MaxRecords = 5 BEVOR du die Datenbank öffnest!
Also:
Rs.MaxRecords = 5
Rs.open ...
Bis dann
Alex
Hallo Stephan!
Verwende rs.MaxRecords = 5 BEVOR du die Datenbank öffnest!
Also:
Rs.MaxRecords = 5
Rs.open ...Bis dann
Alex
Hi Alex!
Irgendwie passiert dann bei mir gar nichts.
Es werden weiterhin alle Einträge angezeigt.
Schön langsam verzweifle ich jetzt an meinem ASP-Skript!
Vielleicht kannst du den Code noch einmal analysieren.
ASP-Code:
<%
Set Hardwaredb = Server.CreateObject("ADODB.Connection")
Hardwaredb.Open "betriebe"
Set cmdboerse = Server.CreateObject("ADODB.Command")
Set rsboerse = Server.CreateObject("ADODB.Recordset")
cmdboerse.CommandText = "SELECT * FROM Ergebnissuche WHERE
(Ergebnissuche.Kaufe=On) ORDER BY Ergebnissuche.Bezeichnung"
cmdboerse.CommandType = 1
Set cmdboerse.ActiveConnection = Hardwaredb
rsboerse.MaxRecords = 5
rsboerse.Open cmdboerse, , 1, 3
Do While Not rsboerse.EOF
%>
Solltest du Zeit haben, bitte um Analyse des Codes.
Danke im voraus für die Mühe,
Stephan
Hallo nochmal!
Kann da keinen Fehler entdecken. Mir mir funktioniert‚s.
Hier mal ein paar Zeilen von mir:
Set Cmd = Server.CreateObject("ADODB.Command")
Set RS = Server.CreateObject("ADODB.Recordset")
Cmd.CommandTimeout = 5
Cmd.Prepared = TRUE
Cmd.CommandType = &H0001
Cmd.ActiveConnection = Application("DBS")
Cmd.CommandText = Session("SQL_cmd")
RS.CursorType = 3
RS.MaxRecords = 1
RS.Open Cmd
Das gibt bei mir genau einen Datensatz raus.
Ansonsten weiss ich auch nicht weiter...
Bis dann
Alex
Hallo Stephan,
ich hab das auch dem Seppl schon geschrieben,
es heisst "self" aber bitte vielleicht gehts mit Beispiel:
<%@ LANGUAGE=VBSCRIPT %>
<!-- #INCLUDE FILE="../Include/Connection.asp" -->
<HTML>
<HEAD>
<TITLE>ASPPaging.asp</TITLE>
<STYLE TYPE="text/css">
BODY {font-family:Tahoma,Arial,sans-serif; font-size:10pt}
.heading {font-family:Tahoma,Arial,sans-serif; font-size:14pt; font-weight:bold}
.cite {font-family:Tahoma,Arial,sans-serif; font-size:8pt}
</STYLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<SPAN CLASS="heading">Paging through Recordsets using ASP</SPAN><HR>
<!--------------------------------------------------------------------------->
<%
Dim rsData
Dim iPage
Dim iTotalPages
Dim fldF
Dim iRec
Dim sQuote
Dim sMe
sQuote = Chr(34) ' the double quote character
Set rsData = Server.CreateObject("ADODB.Recordset")
' set the page size
rsData.PageSize = 10
rsData.CursorLocation = adUseClient
' open the data
rsData.Open "authors", strConn, _
adOpenForwardOnly, adLockReadOnly, adCmdTable
' get the requested data
If Request.QueryString("PAGE") = "" Then
iPage = 1
Else
' protect against out of range pages, in case
' of a user specified page number
If iPage < 1 Then
iPage = 1
Else
If iPage > rsData.PageCount Then
iPage = rsData.PageCount
Else
iPage = CInt(Request.QueryString("PAGE"))
End If
End If
End If
' set the page
rsData.AbsolutePage = iPage
' start building the table
Response.Write "<TABLE BORDER=1><THEAD><TR>"
For Each fldF In rsData.Fields
Response.Write "<TD>" & fldF.Name & "</TD>"
Next
Response.Write "</TR></THEAD><TBODY>"
' now loop through the
For iRec = 1 To rsData.PageSize
If Not rsData.EOF Then
Response.Write "<TR>"
For Each fldF In rsData.Fields
Response.Write "<TD>" & fldF.Value & "</TD>"
Next
Response.Write "</TR>"
rsData.MoveNext
End If
Next
Response.Write "</TBODY></THEAD></TABLE><P>"
' now some paging controls
sMe = Request.ServerVariables("SCRIPT_NAME")
Response.Write " <A HREF=" & sQuote & sMe & "?PAGE=1" & sQuote & ">First Page</A>"
' only give an active previous page if there are previous pages
If iPage = 1 Then
Response.Write " <SPAN>Previous Page</SPAN>"
Else
Response.Write " <A HREF=" & sQuote & sMe & "?PAGE=" & iPage - 1 & sQuote & ">Previous Page</A>"
End If
' only give an active next page if there are more pages
If iPage = rsData.PageCount Then
Response.Write " <SPAN>Next Page</SPAN>"
Else
Response.Write " <A HREF=" & sQuote & sMe & "?PAGE=" & iPage + 1 & sQuote & ">Next Page</A>"
End If
Response.Write " <A HREF=" & sQuote & sMe & "?PAGE=" & rsData.PageCount & sQuote & ">Last Page</A>"
' and clear up
rsData.Close
Set rsData = Nothing
%>
<!--------------------------------------------------------------------------->
<HR><SPAN CLASS="cite">©1999 <A CLASS="cite" HREF="http://www.wrox.com/">Wrox Press</A> -
<A CLASS="cite" HREF="http://webdev.wrox.co.uk/books/2610/">Professional ASP 3.0</A> (ISBN: 1-861002-61-0)</SPAN>
</BODY>
</HTML>
Gruss
Christian
Hi Stephan,
ich hatte die gleichen Probleme mit dem "MaxRecords". Bei mir klappte es auch nicht. Da habe ich mich für eine anderen Lösung entschieden. Einem Zähler. Damit kann ich dann entscheiden, wieviele Datensätze ich anzeigen lasse. Anbei mein Code. Du machst zwar den Zugriff anders als ich, sollte aber auch bei Dir funktionieren.
Gruß
Tomcat
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "[DB]"
SQL = "SELECT * FROM [Tabelle] where [...etc...]"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3
rs.MoveFirst
n=0 <-- Zähler wird auf "0" gesetzt
If rs.eof then
%>
<i>Sorry, zur Zeit sind keine Daten vorhanden.</i>"
<%
else
do while (Not rs.eof) AND (n<2) <-- Hier bestimme ich die Anzahl der anzuzeigenden Datensätze
On Error Resume Next
rs.MoveNext
n=n+1 <-- Hier wird der Zähler um jeweils "1" erhöht.
loop
end if
%>