Autor Beitrag
kiwicht
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1021

Win 7, MacOS
Delphi x, VBA, PHP, ...
BeitragVerfasst: Fr 14.02.03 13:06 
Hallo...

hab folgendes in meiner OnTitleClick-Proc zu stehen:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
qArtikel.SQL.Clear;
qArtikel.SQL.Text := (SQLText);
case grArtmat.SelectedField.Index of
1: qArtikel.SQL.Add('ORDER BY text');
2: qArtikel.SQL.Add('ORDER BY stueck');
3: qArtikel.SQL.ADD('ORDER BY listpreisv');
4: qArtikel.SQL.ADD('ORDER BY preisgr');
5: qArtikel.SQL.ADD('ORDER BY lagerort');
6: qArtikel.SQL.ADD('ORDER BY artikelnum');
end;
qArtikel.Open;


Erklärung:
Wenn ich einen Filter gesetzt habe, möchte ich das dieser erhalten bleibt, und die Spalten entsprechend sortiert werden.
Also setze ich meine Filter, und speichere diese SQL-Anweisung in dem String SQLText.
Wenn ich jetzt noch sortieren möchte, wird per SQL.Add einfach nur "ORDER BY" angehängt, und fertig!
Klappt aber leider nicht.

Weiß einer warum?

mfg
Kiwicht
neojones
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1206
Erhaltene Danke: 1



BeitragVerfasst: Fr 14.02.03 13:20 
"Klappt nicht" soll was heißen? Fehlermeldung oder nichts passiert?

_________________
Ha! Es compiliert! Wir können ausliefern!
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Fr 14.02.03 13:23 
Häng lieber Dein Order by an Deinen SQLText ran und weise das qArtikel.SQL.Text zu. Das müsste gehen.

Gruß
smiegel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: Fr 14.02.03 13:24 
Hallo,

wie sieht Deine Query aus?

_________________
Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
kiwicht Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1021

Win 7, MacOS
Delphi x, VBA, PHP, ...
BeitragVerfasst: Fr 14.02.03 17:27 
@neojones: mit klappt nicht mein ich fehlermeldung

@ugrohne: ich will ja das die ORDER BY-Anweisung "statisch" bleibt, bzw. für jede Spalte eine eigene, und die SELECT*FROM-Anweisung ist dynamisch. Also z.B. bei Programmstart SELECT*FROM, und wenn der User etwas gesucht hat SELECT*FROM WHERE feld1=suche

@smiegel: nach programmstart:

ausblenden Quelltext
1:
2:
3:
Query.SQL.Clear;
Query.SQL.Add('SELECT * FROM db');
Query.Open;


und das steht im OnTitle-Click-Ereignis:

ausblenden Quelltext
1:
2:
Query.SQL.Add(' ORDER BY feld1');
Query.Open;


Und die Möglichkeit, siehe oben, das ich die SQL-Anweisung in einen String lege, hab ich auch durch.. funzt jeweils beides nicht.

mfG
smiegel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: Fr 14.02.03 17:39 
Hallo kiwicht,

versuche es einmal damit:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
qArtikel.SQL.Clear; 

// ---
qArtikel.SQL.Add(SQLText);
// oder
qArtikel.SQL.Add('SELECT * FROM db');
// ---

case grArtmat.SelectedField.Index of 
  1: qArtikel.SQL.Add('ORDER BY text'); 
  2: qArtikel.SQL.Add('ORDER BY stueck'); 
  3: qArtikel.SQL.ADD('ORDER BY listpreisv'); 
  4: qArtikel.SQL.ADD('ORDER BY preisgr'); 
  5: qArtikel.SQL.ADD('ORDER BY lagerort'); 
  6: qArtikel.SQL.ADD('ORDER BY artikelnum'); 
end; 
qArtikel.Open;


oder ganz anders:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
const
  SortFelder:array[1..6] of String=
    ('text', 'stueck', 'listpreisv', 'preisgr', 'lagerort', 'artikelnum');

...
qArtikel.SQL.Clear; 
qArtikel.SQL.Text:=
  Format('SELECT * FROM db ORDER BY %s', 
          [SortFelder[grArtmat.SelectedField.Index]]);
qArtikel.Open; 
...

_________________
Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
kiwicht Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1021

Win 7, MacOS
Delphi x, VBA, PHP, ...
BeitragVerfasst: Sa 15.02.03 16:08 
danke, aber das obere hab ich ja so schon angewendet, und zu dem unteren: was ist wenn der anwender eine filter-option setzt? dann soll diese nach der ORDER-BY-anweisung ja erhalten bleiben.
aber das untere werd ich trotzdem mal ausprobieren... vielen dank

mfG
kiwicht