Einzelnen Beitrag anzeigen

Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

SQLite + DBGrid + Sortieren über Spalten Click

  Alt 16. Jan 2014, 16:15
Datenbank: SQLite • Version: ? • Zugriff über: UniDac
Hallo zusammen,

ich verwende in meinem Programm eine SQLite Datenbank.
Die User möchten nun das Sie über den Klick auf den Titel einer Spalte die Datenmenge nach dieser Spalte Sortieren, so wie es halt auch fast jedes Programm macht.

Ich hab das bisher noch nie umsetzen müssen und hab bisl im Internet darüber gesucht.

Hab ich das richtig interpretiert das man die Datenmenge im DBGrid nicht sortieren kann, sondern das man den SQL Befehl erneut mit der Order By Klausel absetzen muss?

Mein Lösungsansatz (der auch funktioniert) sieht bisher wie folgt aus:

Delphi-Quellcode:
  //Get Sort Column Number and Name
  If Column.Index = giSortColumn Then
  Begin
    If gsSortOrder = 'ASCThen gsSortOrder := 'DESCElse gsSortOrder := 'ASC';
  End Else
  Begin
    gsSortOrder := 'ASC';
  End;

  giSortColumn := Column.Index;
  sFieldName := Column.FieldName;


  //Sort
  Try
    With (sqlitefile_query1) Do
    Begin
      Active := False;
      datsrc_test.DataSet := Nil;
      SQL.Clear;
      SQL.Add('Select * From DATCOM');
      SQL.Add('Order By ' + sFieldName + ' ' + gsSortOrder);
      datsrc_test.DataSet := sqlitefile_query1;
      Active := True;
    End;
  Except
    On E:Exception Do
    Begin
      MessageDlg(E.Message, mtError, [mbOK], 0);
      Exit;
    End;
  End;

  //Show Sort Column
  dbgrid_test.Columns[giSortColumn].Title.Font.Style := dbgrid_test.Columns[giSortColumn].Title.Font.Style + [fsBold];
giSortColumn und gsSortOrder sind Globale Variablen in denen ich mir den letzten Sortier Stand merke.
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat