viele Datensätze einer Tabelle auf Browser zeigen

stud3

Aktives Mitglied
hallo,
ich habe angefangen, eine Eingabemaske zu erstellen, die Zugriff auf eine zentrale Datenbank hat. Nun ich möchte mit Hilfe von ASP, Datensätze einer Tabelle anzeigen, damit es tabellarisch gezeigt wird, muß ich eine HTML Vorlage mit dem Tag table und Komponenten benutzen, klar es geht auch wenn man das Ganze nur auf der ASP Vorlage einsetzt. Das Problem ist es, was soll in dem Fall machen, wenn sich sehr viele Datensätze in der Tabelle befinden? 1000 Einträge z.B. Die Maske hat ein scrollbaren Bereich für die anzuzeigende Tabelle.
Meine Buttons sind Hinzufügen, Ändern, Löschen und Speichern für die Tabelle, die als Test dienen soll.
Hätte jemand eine Idee, was ich in diesem Fall machen soll? Dankbar für eine Hilfe!
 
Deine Aussage ("HTML Vorlage", "Komponenten") versteh ich nicht.
Aber wie auch immer, bei so vielen Records würd ich die Daten seitenweise anzeigen, mit Links zum "durchblättern". Wie man das mit ASP umsetzt, ist z.B. unter http://www.shosp.de/aspsql/absolutepage.php gut beschrieben.

Je nachdem (wie oft die Daten ändern) kann es nützlich sein, das Recordset in der Session zu speichern. Das braucht zwar etwas mehr RAM auf dem Server, steigert aber die Performance, da die Daten nicht bei jedem Seitenaufruf neu von der DB geholt werden müssen.

Griessli
Irene
 
hallo Irene,
erstmals danke für die geschickte Link, die werde ich mir in Ruhe ansehen. Mit Komponenten, vielleicht falsch ausgedrückt hatte ich nur gemeint die "tr" und "td" Tags für Zeilen und Zellen in einer Tabelle. Gruß.
 
ich habe immer noch Probleme und seit Stunden suche ich irgendwelche Infos, die mir vielleicht helfen können, der ASP Code unten muß auf eine Access Datenbank zugreifen, das Problem ist, wenn es ausgeführt wird, kommt die folgende Meldung:

SELECT ID, Vorname, Nachname, Adresse, Ort, Telefon FROM Probe1
ADODB.Recordset-Fehler '800a0cb3'

Current Recordset does not support bookmarks. This may be a limitation of the provider or of the selected cursortype.

Ich weiß nicht mehr was ich machen soll, und ich wünschte gäbe jemand hier (ein Praktikumspartner) der mir helfen kann, langsam nervt mich das alles. Den Code habe ich gelesen und versucht zu verstehen , ich habe Änderungen gemacht, aber ich glaube nicht, dass diese die Fehler sind.


Desperately, stud3


<%
dim strConn

strConn = "PROVIDER=Microsoft.Jet.OleDb.4.0;Data Source=" & _
Server.MapPath("../datenbank/db1.mdb")

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.open strConn

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")


Set aDaten = Server.CreateObject("ADODB.Recordset")
aDaten.CursorType = adOpenStatic
aDaten.ActiveConnection = objConn

SQLAbfrage = "SELECT ID, Vorname, Nachname, Adresse, Ort, Telefon FROM Probe1

aDaten.PageSize = PageSize
'aDaten.CacheSize = PageSize

response.write SQLAbfrage
aDaten.Open SQLAbfrage

' Prüfen, ob die angegebene Seitennummer verwendet werden kann
If AbsolutePage = "" Or Not IsNumeric(AbsolutePage) Or CInt(AbsolutePage) > CInt(aDaten.PageCount) Then

AbsolutePage = 1
End if

' Zuweisen der aktuellen Seite. Diese Zuweisung muss nach dem Öffnen des Recordsets erfolgen
aDaten.AbsolutePage = AbsolutePage


%>


<TABLE cellpadding="3" cellspacing="0" border="0">>
<TR>
<td><b>ID</b></td>
<td> </td>
<td><b>Vorname</b></td>
<td> </td>
<td><b>Nachname</td>
<td> </td>
<td><b>Adresse</b></td>
<td> </td>
<td><b>Ort</b></td>
<td> </td>
<td><b>Telefon</b></td>
<td> </td>
</TR>
<%
while not aDaten.EOF AND intCounter <= PageSize
%>
<TR bgColor="#cccccc">>
<td><b><%=aDaten("ID")%></b></td>
<td> </td>
<TD><b><%=aDaten( "Vorname")%></b></TD>
<td> </td>
<TD><b><%=aDaten( "Nachname")%></b></TD>
<td> </td>
<TD><b><%=aDaten( "Adresse")%></b></TD>
<td> </td>
<TD><b><%=aDaten( "Ort")%></b></TD>
<td> </td>
<TD><b><%=aDaten( "Telefon")%></b></TD>
<td> </td>
</TR>
<%
intCounter = intCounter + 1
aDaten.MoveNext
Wend
%>
</TABLE>

<%
' Erstellen der Links auf die weiteren Seiten
For intPageCounter = 1 To aDaten.PageCount

' --- Die aktuelle Seite wird nicht mehr verlinkt
If CInt(intPageCounter) = CInt(AbsolutePage) Then

Response.Write intPageCounter & " "
Else
Response.Write "<a href=""test.asp?PN=" & intPageCounter & """>" & intPageCounter & "</a> "
End if

Next

' --- Schliessen und terminieren des Recordsets
aDaten.Close
Set aDaten = Nothing

objConn.Close
Set objConn = Nothing
%>





 
Du schreibst leider nicht, auf welcher Zeile der Fehler auftaucht. So kann man nur raten ;-)
Der Code sieht eigentlich richtig aus, ich seh nur zwei mögliche Probleme.

SQLAbfrage = "SELECT ID, Vorname, Nachname, Adresse, Ort, Telefon FROM Probe1

Da fehlt am Ende das schliessende ", ich nehm aber an, dass ist im Code drin, sonst wär die Fehlermeldung ne andere.

strConn = "PROVIDER=Microsoft.Jet.OleDb.4.0;Data Source=" & _
Server.MapPath("../datenbank/db1.mdb")

Hab ich noch nie so gemacht, ich benutze ODBC. Eigentlich sollte das keinen Unterschied machen, aber wer weiss? Die Fehlermeldung deutet auf ein Problem mit der Engine, und die wird in diesem String festgelegt.

Griessli
Irene
 
Zurück
Oben