AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken SQLite + DBGrid + Sortieren über Spalten Click
Thema durchsuchen
Ansicht
Themen-Optionen

SQLite + DBGrid + Sortieren über Spalten Click

Ein Thema von Andidreas · begonnen am 16. Jan 2014 · letzter Beitrag vom 21. Jan 2014
Antwort Antwort
Furtbichler
(Gast)

n/a Beiträge
 
#1

AW: SQLite + DBGrid + Sortieren über Spalten Click

  Alt 17. Jan 2014, 06:36
Bei ADO geht das auch (in-Memory sorting),indem Du die Eigenschaft 'IndexFieldNames' belegst (Feldnamen durch Semikolon getrennt).

Allgemein gesehen ist es ziemlicher Blödsinn, die Daten vom Server sortieren zu lassen. Sortieren ist doch ein wenig Ressourcenfressend und so ein DB-Server ist dafür eigentlich zu schade. Und wenn Du nun mal nicht eine SQLite-DB hast, sondern später mal eine richtige DB, bei der mehrere Leute dran sitzen und die klicken munter auf die Sortierspalten, dann ist der Server so mit Sortieren beschäftigt, das er andere Sachen nicht mehr zeitnah hinbekommt.
Lieber heute richtig anfangen, als sich morgen falsche Sachen angewöhnt haben. Nur in sehr seltenen Fällen, nämlich wenn die anzuzeigende Tabelle soviele Daten enthält, das Du die gar nicht alle in den lokalen Speicher bekommst, sollte man das dem Server überlassen. Dann aber auch nur mit Index auf jeder Spalte, was auch wieder behämmtert ist (Stichwort: Index-Shotgun).

Richtig ist, ein Grid oder ein in-Memory Dataset zu verwenden, das das Sortieren eben lokal erledigt. Warum auch nicht, denn die Daten sind doch eh schon da. Nur das dämliche TDBGrid kann das eben nicht.

Wenn deine TDataset-Komponente das nicht kann, dann kopiere die Daten in ein TClientDataset, das kann -glaube ich zumindest- sortieren.

Edit: Hab gerade 'UniDac' gelesen.. Na dann gehts ja.
  Mit Zitat antworten Zitat
arnof

Registriert seit: 25. Apr 2013
1.252 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: SQLite + DBGrid + Sortieren über Spalten Click

  Alt 17. Jan 2014, 09:56
ADO : xxx.Sort='FELDDNAME';

TClientDataSet: xxx.IndexName:='Feldname';

Dac: keine Ahnung, das will noch entdeckt werden!
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#3

AW: SQLite + DBGrid + Sortieren über Spalten Click

  Alt 17. Jan 2014, 19:09
ADO : xxx.Sort='FELDDNAME';
Echt? Stimmt.
  Mit Zitat antworten Zitat
Benutzerbild von blondervolker
blondervolker

Registriert seit: 14. Sep 2010
Ort: Bei: Leeeiipzzhhh
381 Beiträge
 
Delphi XE2 Architect
 
#4

AW: SQLite + DBGrid + Sortieren über Spalten Click

  Alt 18. Jan 2014, 12:04
www.bewerbungsmaker.de
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

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

AW: SQLite + DBGrid + Sortieren über Spalten Click

  Alt 17. Jan 2014, 10:17
Vielen Dank für die Tipps.

Das mit den IndexFieldNames habe ich ausprobiert und funktioniert einwandfrei!

Ich hab nur noch eine Verständnisfrage...
Wenn ich im SQL eine Ordre By Klausel hab, werden meine Daten sobald ich sie im DBGrid hab ja erst mal nach diesen Kriterien sortiert.

Wie verhält sich das wenn ich dann über IndexFieldNames sortiere?
Die Order By Klausel wird dann ja ausser Kraft gesetzt oder nicht?
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.548 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: SQLite + DBGrid + Sortieren über Spalten Click

  Alt 17. Jan 2014, 10:20
Vereinfacht ausgedrückt: das ORDER BY legt die Reihenfolge fest, in der der Server die Datensätze zum Client schickt. Wenn Letzterer sie aber einmal lokal zwischengespeichert hat, kann er sie wieder umsortieren, wie er lustig ist.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
arnof

Registriert seit: 25. Apr 2013
1.252 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

AW: SQLite + DBGrid + Sortieren über Spalten Click

  Alt 17. Jan 2014, 10:51
Order By , hier muss eine SQL Abfrage Neu gemacht werden (Daten kommen sortiert vom Server)

IndexName, das Betrift die Daten, die sich nach dem laden im ClientDataSet befinden, die werden in der Komponente sortiert und Betrift nur die Daten, die dort drin sind unabhängig vom SQL Server!
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

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

AW: SQLite + DBGrid + Sortieren über Spalten Click

  Alt 17. Jan 2014, 10:58
Ok, dann wäre es so wie ich es haben möchte...

Noch ne andere Frage...
Meine Tests habe ich in einem Testprogramm gemacht wo ich ein DBGrid verwendet hab wo an den Einstellungen nichts verändert wurde...
Jetzt versuch ich das ganze in mein bestehendes Programm einzubauen und auf einmal kommt mein Programm nicht mehr ins "OnColumnTitleClick" Ereignis...

Gibt es Einstellungen die das verhinden können?
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#9

AW: SQLite + DBGrid + Sortieren über Spalten Click

  Alt 17. Jan 2014, 11:00
Ich vermute mal das durch das rüberkopieren von Codezeilen ist das Event des Grids noch nicht mit dem Code verknüpft oder die Komponenten heißen anders o.ä.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

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

AW: SQLite + DBGrid + Sortieren über Spalten Click

  Alt 17. Jan 2014, 11:06
Nee, einfacher...
Ich hatte in den Options dgTitleClick deaktiviert
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz