Bottom 100 verkehrte Ausgabe d. Datensätze
Merius
- datenbank
Ich habe um die 30.000 Datensätze die ich visualisieren muss.
Dazu habe ich eine Duchblätternfunktion implementiert die es mir gestattet je 100 Datensätze zu betrachten und dann nach links oder recht zu blättern.
Das Problem dass ich habe, ist dass wenn ich zurückblättere mir die Datensätze in verkehrter Reihenfolge ausgegeben werden.
Sprich oben ist der unterste der Seite und unten der oebrste.
Also verkehrt sortiert.
Das möchte ich allerdings nicht!
Ich benutze folgendes SQL Statement:
ql="SELECT top 100 * FROM Data " &_
"WHERE ID <= '"&StartID&"' AND (" &_
"Nr LIKE '%"&SuchString&"%' OR " &_
"Bezeichnung LIKE '%"&SuchString&"%' OR " &_
"dtlnr LIKE '%"&SuchString&"%')" &_
"Order By ID DESC "
Data ist übrigens eine View!
Hi,
Das Problem dass ich habe, ist dass wenn ich zurückblättere mir die Datensätze in verkehrter Reihenfolge ausgegeben werden.
Sprich oben ist der unterste der Seite und unten der oebrste.
Also verkehrt sortiert.
"Order By ID DESC "
Wundert Dich das?
ql="SELECT top 100 * FROM Data " &_
Welche Datenbank benutzt Du?
top 100 *
kenn ich nicht als zulässige Syntax (für MySQL oder Oracle)
cu,
Andreas
Hello,
top 100 *
kenn ich nicht als zulässige Syntax (für MySQL oder Oracle)
MS SQL-Server
MfG
Rouven
Hi,
Das Problem dass ich habe, ist dass wenn ich zurückblättere mir die Datensätze in verkehrter Reihenfolge ausgegeben werden.
Sprich oben ist der unterste der Seite und unten der oebrste.Also verkehrt sortiert.
"Order By ID DESC "Wundert Dich das?
ql="SELECT top 100 * FROM Data " &_
Welche Datenbank benutzt Du?
top 100 *
kenn ich nicht als zulässige Syntax (für MySQL oder Oracle)cu,
Andreas
ALso die Programmiersprache ist asp &_ ist nur eien Stringverbindung.
"Order By ID DESC " bewirkt, dass er bei TOP 100 nicht die TOP 100, sondern die unteren 100 ausgibt. Sprich wenn ich zurückblättere, will ich ja die 100 Datensätze davor und nciht die nächsten.
Der Nachteil daran ist die eben erwähnte falsche Sortierung
ich hätte es gerne so:
Data1
Data2
.....
Data100
erhalten tu ich aber:
Data100
Data99
.......
Data1
Hi,
ALso die Programmiersprache ist asp &_ ist nur eien Stringverbindung.
Ein workaround waere es, die Eintraege die du hier ausliest einfach rueckwaerts auszugeben.
"Order By ID DESC " bewirkt, dass er bei TOP 100 nicht die TOP 100, sondern die unteren 100 ausgibt.
Sprich wenn ich zurückblättere, will ich ja die 100 Datensätze davor und nciht die nächsten.
In mySql wuerde ich hierfuer LIMIT verwenden. Gibt es sowas bei MS SQL nicht?
Wie realisierst du das dann mit TOP, wenn der User auf die naechste Seite blaettert? TOP 200 wird dir ja dann nur die naechsten 200 ausgeben?
mfG,
steckl
Hi,
ALso die Programmiersprache ist asp &_ ist nur eien Stringverbindung.
Ein workaround waere es, die Eintraege die du hier ausliest einfach rueckwaerts auszugeben."Order By ID DESC " bewirkt, dass er bei TOP 100 nicht die TOP 100, sondern die unteren 100 ausgibt.
Sprich wenn ich zurückblättere, will ich ja die 100 Datensätze davor und nciht die nächsten.
In mySql wuerde ich hierfuer LIMIT verwenden. Gibt es sowas bei MS SQL nicht?
Wie realisierst du das dann mit TOP, wenn der User auf die naechste Seite blaettert? TOP 200 wird dir ja dann nur die naechsten 200 ausgeben?mfG,
steckl
Im Grunde habe ich 3 asp Seiten
search.result
search.result.next
search.result.last
Bei der Suche wird zuerst "search.result" aufgerufen und gibt die Top 100 aus.
Sind mehr als diese 100 Daten vorhanden kann der User auf die nächste Seite wechseln, ermöglicht wird dies durch eine einfache ID Übergabe. Er befidnet sich nun auf "search.result.next" Dort werden die nächsten TOP 100 ausgegeben und so weiter und so fort. Funktioniert perfekt.
Nur wenn ich nach links blättere und die vorrigen 100 Datensätze ansehen möchte, sind die eben verkehrt sortiert, die zugehörige asp Seite ist übrigens "search.result.last"
Was macht LIMIT? werd mal nachsehen!
Hi,
Das Problem dass ich habe, ist dass wenn ich zurückblättere mir die Datensätze in verkehrter Reihenfolge ausgegeben werden.
Sprich oben ist der unterste der Seite und unten der oebrste.
Also verkehrt sortiert.
Das möchte ich allerdings nicht!
Welche Reihenfolge haettest du denn gerne?
Ich benutze folgendes SQL Statement:
ql="SELECT top 100 * FROM Data " &_
Was ist "ql" und "&_"?
Kommt das aus einer Programmiersprache, mit der du das Ergebnis weiterverarbeitest, oder ist das ein (mir unbekannter) bestandteil von SQL?
"WHERE ID <= '"&StartID&"' AND (" &_
"Nr LIKE '%"&SuchString&"%' OR " &_
"Bezeichnung LIKE '%"&SuchString&"%' OR " &_
"dtlnr LIKE '%"&SuchString&"%')" &_
"Order By ID DESC "
Das Order By ID DESC sollte bewirken, dass das Ergebnis deiner Abfrage nach der ID absteigend sortiert wird. Also Groessere IDs zuerst.
Data ist übrigens eine View!
Falls das auf die Loesung einen Einfluss hat kannst du mein Posting ignorieren, weil ich mich damit noch nie was gemacht hab.
mfG,
steckl