![]() |
Datenbank: MS SQL Server • Version: 2000 • Zugriff über: dbExpress
Spalten im DBGrid sortieren OHNE ADO
Hi.
Ich habe ein DBGrid, welches per TDataSource auf ein SimpleDataSet zugreift. Ich will den Inhalt nach Spalten sortieren. Ich will NICHT ADO benutzen. Füge ich den CommandText im DataSet mit ORDER BY ein, ändert das leider nichts an der Anzeige. Die Daten werden IMMER aufsteigend angezeigt. Wie krieg ich das DBGrid zu einer sortierten Anzeige? Vielen Dank. |
Re: Spalten im DBGrid sortieren OHNE ADO
Ich denke nicht das das DBGrid solch ein feature besitzt. Hier wäre entsprechende enhanced Grids nötig oder ein MemoryTable-Komponente.
|
Re: Spalten im DBGrid sortieren OHNE ADO
Mh, das ist ja echt übel.
Mich nervt es, dass anscheinend das DataSet die Ergebnismenge wieder sortiert. Wenn ich in die SQL Abfrage ein ORDER BY xy DESC/ASC beigebe, juckt das den nicht die Bohne. |
Re: Spalten im DBGrid sortieren OHNE ADO
Ich habe das gerade mal ausprobiert, das Sortieren mit einem SimpleDataSet funktioniert wunderbar. Aufsteigend genauso gut wie absteigend. Dabei ist es auch egal, ob die Spalte, nach der sortiert wird im SELECT enthalten ist oder nicht.
Keine Ahnung, was bei dir da nicht geht. |
Re: Spalten im DBGrid sortieren OHNE ADO
Du sortierst über SQL? Also hast in dem SQL Statement ORDER BY xy DESC/ASC? Oder wie sortierst du?
Bei mir geht es mit ORDER BY definitiv nicht. PS: PTLer? FHler oder Freiberuflich? ;) |
Re: Spalten im DBGrid sortieren OHNE ADO
Zitat:
|
Re: Spalten im DBGrid sortieren OHNE ADO
Moin, moin, lasst uns das Ding mal sortieren:
a: DBGrid mit Query und SQL-Abfrage ---------------------------------------------------------------------------------------- Hier geht prinzipbedingt nur die Sortierung über ORDER BY ernsthaft korrekt. -Hintergrund - liegt darin, dass der DataSet nicht alle Datensätze einliest. Wenn man im DBGrid bei größeren Datenmengen scrollt, dann wird nachgeladen. Wenn ich nur den DataSet mit aktuellem Inhalt sortiere, dann gibt es beim Scrollen Durcheinander, da unosrtierte Records kommen. Wie "alzaimar" schon angemerkt hat, sollte man in dieser Variante Indexnamen möglichst nicht im DataSet (Query/DBGrid) angeben, sonst geht das erst recht schief. ---------------------------------------------------------------------------------------- a: DBGrid mit TTable und Indexfeld ---------------------------------------------------------------------------------------- Hier geht prinzipbedingt die Sortierung über das Indexfeld der TTable korrekt. -Hintergrund - Auch hier lädt der DataSet Datensätze bei Bedarf (bei Scrollen) nach. Die Sortierung erfolgt dann über die Angabe in der TTable. Ist die gleich mit der Datenbanksortierung wird die Datenmenge einfach zum DBGrid durchgereicht. Ansonsten wird sie intern umsortiert, was sich übrigens in temporären Dateien bemerkbar macht. ---------------------------------------------------------------------------------------- Grüße in die Runde // Martin |
Re: Spalten im DBGrid sortieren OHNE ADO
Vielen Dank für eure Mühe.
Aber der Fehler lag in der Abfrage selbst. Mein CommandText sah ca. so aus:
SQL-Code:
Kaum zu glauben: Aber das ';' am Ende der Abfrage ist der Fehler. Ohne dem Semikolon funktioniert die Sortierung.
SELECT t.anfang, t.ende. ti.titel. ti.inhalt
FROM termin t, termin_inhalt ti WHERE t.inhalt_id = ti.inhalt_id ORDER BY t.anfang desc; |
AW: Spalten im DBGrid sortieren OHNE ADO
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo
Es gibt eine TDBSortGrid - Komponente, aber die ist nur kommerziell erhältlich. Kostet so um die CHF 50.- Anbei ein Screenshot der Version. Habe leider nur eine dcu, aber keinen Quellcode. Gruss Holzfreak |
AW: Spalten im DBGrid sortieren OHNE ADO
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 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