Merius: Bottom 100 verkehrte Ausgabe d. Datensätze

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!

  1. 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

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Hello,

      top 100 *
      kenn ich nicht als zulässige Syntax (für MySQL oder Oracle)

      MS SQL-Server

      MfG
      Rouven

      --
      -------------------
      Let Bygones Be Bygones  --  Robert Pitscottie: "Chronicles of Scotland"
    2. 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

      1. 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

        1. 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!

  2. 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