Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Sortieren von Datensätzen im DBGrid (https://www.delphipraxis.net/13243-sortieren-von-datensaetzen-im-dbgrid.html)

Emilio 14. Dez 2003 18:43

Re: Sortieren von Datensätzen im DBGrid
 
Hi r_kerber,

ah! - die strings, tsatsa ...

Werde es auch nochmal mit richtigerer Schreibweise versuchen

Danke.

Viele Grüße

Emilio

r_kerber 14. Dez 2003 18:43

Re: Sortieren von Datensätzen im DBGrid
 
Hallo Emilio,

ich zitiere noch mal aus Deiner ersten Frage.
Zitat:

Zitat von Emilio
Alles was ich bisher gelesen, gehört und ausprobiert habe führte nicht nur zu unverständlichen Fehlermeldungen (Z.B. "...expected: end of SQL-statement, found: 'name'...) sondern mich auch langsam in den Wahnsinn.

. Wenn dort wirklich nur 'name' steht, bleibe ich bei meiner Meinung, dass es Probleme mit dem Zeichen / im Spaltennamen gibt.

woki 14. Dez 2003 19:12

Re: Sortieren von Datensätzen im DBGrid
 
Hi,

wie r_kerber schon anmerkte, der SQL String im ersten Beispiel lautet:
select * from schallplattenorder byfeldname,

er sucht also die Tabelle schallplattenorder, und die Tabelle kann er natürlich nicht finden:

Table ...\Schallplattenorder.DAT does not exist

Grüsse
Woki

Robert_G 14. Dez 2003 22:56

Re: Sortieren von Datensätzen im DBGrid
 
Sorry, dass ich nicht mehr geschrieben habe. :roll:
Zitat:

Zitat von Emilio
Für die Schallplatten habe ich dazu ein DBISAMtable mit folgenden Feldern:

PlattenID (autoIncr)
Name/Titel (string)
Interpret/Gruppe (string)
Vorname (String)
Zustand Cover (Memo)
Musikrichtung (Integer) !
Plattenart (Integer) !
etc...


Du verwendest "/" im Namen der 2. Spalte, deshalb bekommst du die SQL-Fehlermeldung wenn sie sortiert werden soll.

Die beste Lösung wäre die Spalte umzubenennen. (Bei "normalen" Spaltennamen wird Sharkies Code immer funktionieren)

Eine andere Lösung ist die Sortierung über den Index der Spalte.
Delphi-Quellcode:
//
  DBISAMQuery1.SQL.Add ('SELECT * FROM schallplatten ORDER BY ');
  DBISAMQuery1.SQL.Add ( IntToStr(succ(Column.Field.Index)) );
end;
Das wird aber nur funktionieren, wenn du im Grid die gleiche Spaltenreihenfolge wie in der Tabelle verwendest.
(Bei "SELECT *" wird es klappen)

Matt 15. Dez 2003 03:58

Re: Sortieren von Datensätzen im DBGrid
 
Ich habe zwar kein Plan von dem Grid was du da benutzt, aber hat dieses DBISAMDBGrid nicht auch eine DataSource?
Könnte man dort nicht auch mit "Sort" arbeiten?

Nach dem Motto (oder so ähnlich):

Code:
if DBGrid1.DataSource.DataSet is TCustomADODataSet then
  with TCustomADODataSet(DBGrid1.DataSource.DataSet) do
    if (Pos(Column.Field.FieldName, Sort) = 1) and (Pos(' DESC', Sort)= 0) then
      Sort := Column.Field.FieldName + ' DESC'
    else
      Sort := Column.Field.FieldName + ' ASC';
kann natürlich sein, dass das nur bei den normalen DBGrids funktioniert! :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 Uhr.
Seite 2 von 2     12   

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