<%@ Language=VBScript %>
<%
option explicit
Response.Expires = 0
'on error resume next

'***************************************************************************
'Variablendeklaration und -initialisierung
Const adOpenKeyset = 1
Const adLockOptimistic = 3
Const INTMAXPAGINGLENGTH = 3 'Anzahl angezeigte Datensätze pro Seite

Dim intaktuellersatz 'Zähler für die angezeigten Datensätze
Dim intpage
Dim intpagingfirst 'Laufnr des ersten angezeigten Datensatzes auf Seite
Dim intpaginglast 'Laufnr des letzten angezeigten Datensatzes auf Seite
Dim objcon
Dim objfield
Dim objrs
Dim strcon
Dim strfilename
Dim strsqlselect

set objcon = Server.CreateObject("ADODB.Connection")
set objrs = Server.CreateObject("ADODB.Recordset")

strcon = "DRIVER={Microsoft Access Driver (*.mdb)}; " & _
    "DBQ=" & server.MapPath("/asppages/silvi/db/dbartikel2000.mdb")

strsqlselect = "SELECT tblkategorien.Kategoriename, tblartikel.Artikelname, " & _
  "  tblartikel.Einzelpreis, tblartikel.Lagerbestand " & _
  "FROM tblkategorien, tblartikel " & _
  "WHERE tblartikel.Auslaufartikel = 0 " & _
  " AND tblkategorien.Kategorienr = tblartikel.Kategorienr " & _
  "ORDER BY tblartikel.Artikelname"    

strfilename = right(request.servervariables("PATH_TRANSLATED"), _
  Len(request.servervariables("PATH_TRANSLATED")) _
  - InStrRev(request.servervariables("PATH_TRANSLATED"),"\"))

'***************************************************************************
'Lokale Prozeduren und Funktionen


'***************************************************************************
'Hier steht Code, der vor dem Seitenkopf stehen muss, z.B. Response.Redirect


%>

<html>
<head>
  <base href="http://amddigicomp/asppages/silvi/uebungen/uebung6_9.asp" fptype="TRUE">
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
    <title>ASP Datenbankanbindung: Datensätze mit Paging anzeigen</title>
  <meta name="description" content="" />
  <meta name="keywords" content="" />
</head>

<body>

<h1>Artikelliste</h1>
<%
  '***************************************************************************
  'Hier steht Code, der die Seite erstellt, z.B. mit Response.Write(..)
  objcon.Open strcon
  objrs.Open strsqlselect, objcon, 1, 3
  

  If TypeName(objrs) = "Recordset" And objrs.state = 1 Then 
    'Seite in Parameter abfragen und setzen
    intpage = 1
    If Request.QueryString("parpage") > 0 Then
      intpage = CInt(Request.QueryString("parpage"))
    End If 'Request.QueryString("parpage") > 0
          
    '----------------------------------
    'Treffer berechnen und anzeigen
    intpagingfirst = (intpage - 1) * INTMAXPAGINGLENGTH + 1
    If objrs.RecordCount > intpage * intmaxpaginglength Then
      intpaginglast = intpage * intmaxpaginglength
    Else
      intpaginglast = objrs.RecordCount
    End If
    Response.Write(space(6)& "<p><b>Treffer " & intpagingfirst & " bis " & _
      intpaginglast & " von " & objrs.recordcount & "</b></p>" & vbCrLf)

    'Gibt es überhaupt mehr Datensätze als pro Seite erlaubt sind
    If objrs.RecordCount > INTMAXPAGINGLENGTH Then
      '----------------------------------
      'Datensätze anzeigen

      'Paging: Länge der Seite setzen
      objrs.PageSize = INTMAXPAGINGLENGTH
      objrs.AbsolutePage = intpage
              
      For intaktuellersatz = 1 To objrs.PageSize 
        If Not objrs.EOF Then
          Response.Write(objrs("Artikelname") & "<br />" & vbCrLf)
          objrs.MoveNext 
        End If
      Next
              
      Response.Write("&nbsp;<br />"&vbCrLf)
               
      '----------------------------------
      'Links zum Vor- und Zurückblättern
      If intpage > 1 Then
        Response.Write("<a href=""" & strfilename & _
          "?parpage=1""><<</a>&nbsp;&nbsp;"
& vbCrLf)
        Response.Write("<a href=""" & strfilename & _
          "?parpage=" & intpage - 1 & _
          """><</a>
&nbsp;&nbsp;"
& vbCrLf)
      Else
        Response.Write("<<&nbsp;&nbsp;" & vbCrLf)
        Response.Write("<&nbsp;&nbsp;" & vbCrLf)
      End If

      If intpage < objrs.PageCount Then
        Response.Write("<a href=""" & strfilename & _
          "?parpage=" & intpage + 1 &_
          """>>
</a>&nbsp;&nbsp;" & vbCrLf)
        Response.Write("<a href=""" & strfilename & _
          "?parpage=" & objrs.PageCount &_
          """>>
></a>&nbsp;&nbsp;" & vbCrLf)
      Else
        Response.Write(">&nbsp;&nbsp;" & vbCrLf)
        Response.Write(">>&nbsp;&nbsp;" & vbCrLf)
      End If
      Response.Write("<br />"&vbCrLf)
    Else
      While Not objrs.EOF 
          Response.Write(objrs("Artikelname") & "<br />" & vbCrLf)
          objrs.MoveNext 
        objrs.MoveNext 
      Wend
    End If 'objrs.RecordCount > intmaxpaginglength
  End If 'TypeName(objrs) = "Recordset" And objrs.state = 1
  objrs.Close
  objcon.Close
%>
</body>
</html>

Demo: uebungen/uebung6_9.asp

Letzter Update: 26.12.2021 17:48

Zurück zur Liste mit ASP-Übungen auf  www.ecotronics.ch