Objekte übergeben oder Global
tom
- asp.net
0 Odium
Ich frage eine Datenbank mit einem SQL Befehl ab.
z.B Set objRS = objCon.Execute(str_SQL)
Nun möchte ich den Ersten Datensatz in einem Formular in Feldern ausgeben. Und mit MoveNext den Nächsten anzeigen.
Wie kann ich das Objekt übergeben, wenn ich einen submit mache um objRS.MoveNext auszuführen??
tom
Hallo,
las doch einen manuellen zähler mitlaufen...
dim zaehler
zaehler = 0
do while not rs.eof
...
...
zaehler = zaehler + 1
rs.movenext
loop
diesen zaehler kannst du übergeben und auf der nächsten seite wird eine neuer zaehler mit diesem wert verglichen und der entsprechende datensatz ausgegeben...
aber was ist bei änderung des datenbestandes/anderer sortierung?
Odium
Hi, hallo
ja, http ... hat so seine nachteile -> response auf request usw...
d.h. man kann beim submitten von Formularen nicht einfach ein Objekt übergeben, weil das Objekt ja auf Client-Seite nie existierte und auf dem Server schon lange wieder geschlossen ist, wenn der Client irgendwelche Ausgaben betrachten kann.
Variante A)
das gesamte Recordset wird dem Client zugestellt und mit einem fiesen Javascript-Konstrukt beschaltet
Variante B)
du läßt mal ein wenig deine Gedanken spielen ...
die Idee mit einem Zähler ist nicht ganz schlecht, ich würde aber an dieser Stelle in dem "zum nächsten Datensatz"-Formular aber die Datensatz ID des aktuellen oder des nächst-kommenden Datensatzes übergeben - KEIN Objekt sondern ein einfacher Wert :-)
an einem zusätzlichen SQL-Statement wird man da nur sehr schwer vorbeikommen. Das SQL ist abhängig von Datenbanksystem (Access, SQL Server, Oracle, MySQL) - wobei MySQL aufgrund von Unfähigkeit bei Subselects ausfällt. Pech!
Um einen Datensatz aufzurufen, solltest du dessen eindeutigen Bezeichner verwenden -> Datensatz ID
die 8 ist beispiel .. du kannst auch mit der 17 oder 5980564 anfangen
SELECT * FROM tabelle1 WHERE tabelle1.ID = 8
der Datensatz davor hat schätzungsweise eine ID < 8 und der danach eine ID > 8
also benötigst du entsprechendes SQL um den ersten Datensatz rauszufinden, der eine ID hat die größer/kleiner ist als die ID des gegenwärtigen.
mit T-SQL: SELECT TOP 1 next_ID FROM (SELECT ID as next_ID FROM tabelle1 WHERE ID >" & yourCurrentID & " ORDER BY ID ASC)"
bei Oracle funktioniert TOP 1 übrigens nicht ... dort muß man mit rownum nach WHERE arbeiten.
gleiches Verfahren kann man auch mit leichten Veränderungen benutzen wenn man Listen mit n-Einträgen durchschalten will, also immer 50 Datensätze mit einmal gelistet anzeigen lassen möchte.
Ich hoffe, dieser Schubser reicht aus um den Weg ins Licht zu finden :-)
HTH
Tschau, tschüß,
Frank