Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBGrid Einträge Ordnen (https://www.delphipraxis.net/109964-dbgrid-eintraege-ordnen.html)

Delphi Code Anfänger 10. Mär 2008 20:25

Datenbank: access • Zugriff über: ado

DBGrid Einträge Ordnen
 
Hallo,

ich habe ein kleines Problem. Ich ordne mit folgendem Code die Einträge in meinem DBGrid:

Delphi-Quellcode:
procedure TForm6.DBGrid1TitleClick(Column: TColumn);
begin
try
    sSortColumn := DBGrid1.Columns.Items[Column.Index].FieldName;
    if sSortColumn = sOldSortColumn then
    begin
        if sSortOrder =' DESC ' then sSortOrder := ' ASC ' else sSortOrder := ' DESC ';
    end
    else
        sSortOrder := ' ASC ';

    sOldSortColumn := sSortColumn;


    Form5.Query.SQL.Text:=Form5.Query.SQL.Text+'ORDER BY '+sSortColumn+sSortOrder;
    //ShowMessage(Form5.Query.SQL.Text);
    Form5.Query.Open;
   except
      end;
end;
Den habe ich irgendwo hier aus dem Forum.

Kurze Erklärung:

In Form5 habe ich eine Query deren Ergebnisse in Form6 in einem DBGrid angezeigt werden.

Wenn man auf eine Spalte im DBGrid klickt wird sie geordnet. Ihr seht ja wie sich die Query oben zusammen setzt.

Beim ersten mal Sortieren klappt das wunder bar. Beim zweiten mal nicht mehr. Habe mir dann schnell mit ShowMessage alles ausgeben lassen. Und heraus kam das er diesen Teil noch mal hintersetzt:

'ORDER BY '+sSortColumn+sSortOrder

Dann habe ich in einem SELECT zwei mal ORDER BY. Das geht natürlich nicht.

Er hängt mit jedem klick noch mal ein ORDEr BY an. Was kann ich da machen?

mkinzler 10. Mär 2008 20:27

Re: DBGrid Einträge Ordnen
 
Setzte jedesmal den ganzen Query neu

Delphi Code Anfänger 10. Mär 2008 20:29

Re: DBGrid Einträge Ordnen
 
Habe ich mir auch so gedacht. Nur wie?

mkinzler 10. Mär 2008 20:34

Re: DBGrid Einträge Ordnen
 
Speichere die Abfrage ohne Sortierung vorher ab.

Delphi-Quellcode:
if sAbfrage = '' then sAbfrage := Form5.Query.SQL.Text;

Form5.Query.SQL.Text:= sAbfrage +' ORDER BY '+sSortColumn+sSortOrder;

Delphi Code Anfänger 10. Mär 2008 20:52

Re: DBGrid Einträge Ordnen
 
Klasse Danke! Läuft Perfekt. :-D

Peinhard 11. Mär 2008 18:01

Re: DBGrid Einträge Ordnen
 
Wenn du mit client-seitigem Cursor arbeitest, kannst du auf den erneuten SELECT auch verzichten, siehe hier:

http://www.delphipraxis.net/internal...=588912#588912

RavenIV 11. Mär 2008 18:50

Re: DBGrid Einträge Ordnen
 
Zitat:

Zitat von Peinhard
Wenn du mit client-seitigem Cursor arbeitest, kannst du auf den erneuten SELECT auch verzichten, siehe hier:

http://www.delphipraxis.net/internal...=588912#588912

Geht das auch ohne ADO?
z.B. mit ZEOS?

Peinhard 11. Mär 2008 19:00

Re: DBGrid Einträge Ordnen
 
Da bin ich überfragt, weil ich die nicht kenne. Aber wenn sie ein Property Sort odgl haben...


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:40 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 by Thomas Breitkreuz