AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken order by als parambyname geht nicht?
Thema durchsuchen
Ansicht
Themen-Optionen

order by als parambyname geht nicht?

Ein Thema von khh · begonnen am 16. Feb 2011 · letzter Beitrag vom 16. Feb 2011
Antwort Antwort
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#1

AW: order by als parambyname gent nicht?

  Alt 16. Feb 2011, 11:06
Du kannst per Parameter nur Werte übergeben, aber keine Tabellen- oder Feldnamen.
hab ich schon befürchtet

na dann übergebe ich den Feldnamen halt per Variable im Statement.


Ich danke dir

Gruss KHH
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.230 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: order by als parambyname gent nicht?

  Alt 16. Feb 2011, 11:11
Du kannst per Parameter nur Werte übergeben, aber keine Tabellen- oder Feldnamen.
hab ich schon befürchtet

na dann übergebe ich den Feldnamen halt per Variable im Statement.
Eine solche Möglichkeit würde (teilweise) verhindern das der Query Analyser schon den Ausführungpfad optimiert bestimmen kann und Geschwindigkeitsvorteile durch wiederholte Ausführung nicht vorhanden wären.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#3

AW: order by als parambyname gent nicht?

  Alt 16. Feb 2011, 11:27
Du kannst per Parameter nur Werte übergeben, aber keine Tabellen- oder Feldnamen.
hab ich schon befürchtet

na dann übergebe ich den Feldnamen halt per Variable im Statement.
Eine solche Möglichkeit würde (teilweise) verhindern das der Query Analyser schon den Ausführungpfad optimiert bestimmen kann und Geschwindigkeitsvorteile durch wiederholte Ausführung nicht vorhanden wären.
und wie würdest du es dann anders machen?
Karl-Heinz
  Mit Zitat antworten Zitat
Neumann
Online

Registriert seit: 6. Feb 2006
Ort: Moers
547 Beiträge
 
Delphi 12 Athens
 
#4

AW: order by als parambyname geht nicht?

  Alt 16. Feb 2011, 12:14
Hallo,

die '2' ist kein Feldname, sondern sozusagen die Feldposition in der Liste derselectierten Felder

Ich kann den sql z.B. so schreiben: select nr, name from kunden order by 1 wird nach Nummer sortiert.

Ebenso möglich: select nr, name from kunden order by :p und dann den Wert für p als Parameter übergeben.

Gruß

Ralf
Ralf
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#5

AW: order by als parambyname geht nicht?

  Alt 16. Feb 2011, 12:17
Hallo,

die '2' ist kein Feldname, sondern sozusagen die Feldposition in der Liste derselectierten Felder

Ich kann den sql z.B. so schreiben: select nr, name from kunden order by 1 wird nach Nummer sortiert.

Ebenso möglich: select nr, name from kunden order by :p und dann den Wert für p als Parameter übergeben.

Gruß

Ralf
ok, werd ich ausprobieren

danke gruss KHH
Karl-Heinz
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

AW: order by als parambyname geht nicht?

  Alt 16. Feb 2011, 14:25
Man sollte das Sortieren nicht dem Server überlassen. Das sind Perlen vor die Säue. Hol Dir die Datenmenge unsortiert und sortiere selbst in Memory.

Aber wenn Du es partout so willst, dann erstelle deine Query individuell:
myQuery.SQL.Text := Format('select * from tabelle order by %s',[aFieldName]);
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: order by als parambyname geht nicht?

  Alt 16. Feb 2011, 16:55
Man sollte das Sortieren nicht dem Server überlassen. Das sind Perlen vor die Säue. Hol Dir die Datenmenge unsortiert und sortiere selbst in Memory.
Warum das?
Hört sich für mich sehr nach der Aufforderung an, das Rad neu zu erfinden.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Neumann
Online

Registriert seit: 6. Feb 2006
Ort: Moers
547 Beiträge
 
Delphi 12 Athens
 
#8

AW: order by als parambyname gent nicht?

  Alt 16. Feb 2011, 11:15
Hallo,

man kann die Feldposition übergeben, also order by :p und den Parameter dann mit query.parambyname('p').asstring:='2'

Gruß

Ralf
Ralf
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#9

AW: order by als parambyname gent nicht?

  Alt 16. Feb 2011, 11:26
Hallo,

man kann die Feldposition übergeben, also order by :p und den Parameter dann mit query.parambyname('p').asstring:='2'

Gruß

Ralf
mh genau das geht aber bei order by wohl nicht, wobei 2 in deinem Beispiel ja auch kein Feldname ist.
Karl-Heinz
  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 11:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz