AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ORDER BY Feld als Parameter übergeben
Thema durchsuchen
Ansicht
Themen-Optionen

ORDER BY Feld als Parameter übergeben

Ein Thema von Bart Simpson · begonnen am 17. Feb 2004 · letzter Beitrag vom 17. Feb 2004
Antwort Antwort
Bart Simpson

Registriert seit: 3. Dez 2002
9 Beiträge
 
#1

ORDER BY Feld als Parameter übergeben

  Alt 17. Feb 2004, 14:08
Ich arbeite grade an 'ner MS-SQL DB mit einer immens großen Tabelle (>250.000 Einträge). Für meine App brauch ich immer mal wieder eine rel. kleine Menge aus dieser Tabelle (Größenordnung: 100 Datensätze).

Ich möchte dabei eine Seitenartige Darstellung realisieren. D.h. Es gibt gewisse Filter- und Sortierkriterien, die einige tausend Datensätze ergeben. Nun möchte ich aber immer nur z.B. 100 davon wirklich sehen. Wenn ich die ersten 100 will, ist's kein Problem, dann könnt ich via SELECT TOP 100 ... alles erledigen. Wenn ich aber z.B. von 900-1000 haben will, dann müsst ich alle 1000 Datensätze übertragen, und das könnte der Netzwerk-Overkill werden

Daher war meine Idee, eine gespeicherte Funktion ("Table-Valued") zu erstellen, die mir alle Filter- und Sortieraktionen durchführt. Dabei bekäme sie die Kriterien nach denen Sie filtern und sortieren soll per Parameter.
Soweit, so gut. Nun hab ich aber das Problem, dass die Sortierung natürlich einen Einfluss auf das Ergebniss hat, wenn ich z.B. von Datensatz 10 bis 20 haben will

Also hab ich mal blauäugig versucht, ein SELECT folgendermassen aufzubauen:
Code:
select * from tabelle order by @spalte
Das quittiert mir der Server aber mit folgendem:

Server: Nachr.-Nr. 1008, Schweregrad 15, Status 1, Zeile 4
Das von der ORDER BY-Nummer 1 identifizierte SELECT-Element enthält eine Variable in
dem Ausdruck, der eine Spaltenposition identifiziert. Variablen sind nur zulässig,
wenn der Ausdruck in der ORDER BY-Klausel auf einen Spaltennamen verweist.

Bzw. in Englisch:

The SELECT item identified by the ORDER BY number 1 contains a variable as part
of the expression identifying a column position. Variables are only allowed when
ordering by an expression referencing a column name.


Die Meldung an sich deutet für mich darauf hin, dass es wohl irgendwie möglich ist...nur wie???

Bart Simpson
Naeser's Gesetz: Man kann etwas narrensicher machen - aber nicht VERDAMMT narrensicher!
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#2

Re: ORDER BY Feld als Parameter übergeben

  Alt 17. Feb 2004, 14:14
EXEC ('select * from tabelle order by '+@spalte) Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz