Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Daten aufsteigend sortieren (https://www.delphipraxis.net/119778-daten-aufsteigend-sortieren.html)

Thomm 31. Aug 2008 16:39

Datenbank: MyBase • Zugriff über: Clientdataset

Daten aufsteigend sortieren
 
Ich wollte die Daten in meiner Datenbank aufsteigend sortieren.

Das Feld heißt 'Abfahrtszeit' und umfasst Datum und Uhrzeit (z.B. 12.08.2007 19:57:45)

Delphi-Quellcode:
procedure TForm1.Oeffnen1Click(Sender: TObject);
begin
Clientdataset1.IndexDefs.Add('IDAbfahrtszeit', 'Abfahrtszeit', [ixCaseInsensitive]) ;
.
.
.
.

end;;
Was ist daran falsch ?

grenzgaenger 31. Aug 2008 16:55

Re: Daten aufsteigend sortieren
 
die anordnung der daten in der db ist sache der db und nicht beinflussbar.

was du machen kannst, ist die ausgabe entsprechend deinen wünschen zu sortieren.

eddy 31. Aug 2008 16:57

Re: Daten aufsteigend sortieren
 
Hallo Thomm,

probier's damit:

Delphi-Quellcode:
Clientdataset1.IndexDefs.Add('IDAbfahrtszeit', 'Abfahrtszeit', [ixCaseInsensitive, ixDescending]);
mfg
eddy

Thomm 31. Aug 2008 17:05

Re: Daten aufsteigend sortieren
 
Zitat:

Zitat von eddy
Hallo Thomm,

probier's damit:

Delphi-Quellcode:
Clientdataset1.IndexDefs.Add('IDAbfahrtszeit', 'Abfahrtszeit', [ixCaseInsensitive, ixDescending]);
mfg
eddy

Habs probiert, funktioniert nicht :?

grenzgaenger 31. Aug 2008 17:49

Re: Daten aufsteigend sortieren
 
<delete>

Thomm 31. Aug 2008 17:53

Re: Daten aufsteigend sortieren
 
Irgendwie muss man doch die Einträge sortieren können.

Gibts doch nicht.

Vielleicht hat DBGrid ne Eigenschaft zum Sortieren.

Chemiker 31. Aug 2008 18:05

Re: Daten aufsteigend sortieren
 
Hallo Thomm,

natürlich kann man die Einträge sortieren.



Delphi-Quellcode:
var
  IndexName: String;
begin
  IndexName:= 'KDNachName'+'Index';
  DM.KundeClientDataSet.AddIndex(IndexName, 'KDNachName',
                                                   [ixCaseInsensitive],'','',0);
  DM.KundeClientDataSet.IndexName:= IndexName;


Wenn Du die Spalten in einem DBGrid sortieren willst, kann man durch das Anklicken der Namen in der Spalten sortieren. Allerdings funktioniert die Sortierung nur absteigend.

Delphi-Quellcode:
procedure TfrmHauptFormular.KundenDBGridTitleClick(Column: TColumn);
begin
  try
    DM.KundeClientDataSet.IndexFieldNames := Column.FieldName;
  except
    ShowMessage('Das Feld kann nicht sortieren' + Column.FieldName);
end;

Bis bald Chemiker

Thomm 31. Aug 2008 18:25

Re: Daten aufsteigend sortieren
 
Zitat:

Zitat von Chemiker
Hallo Thomm,

natürlich kann man die Einträge sortieren.



Delphi-Quellcode:
var
  IndexName: String;
begin
  IndexName:= 'KDNachName'+'Index';
  DM.KundeClientDataSet.AddIndex(IndexName, 'KDNachName',
                                                   [ixCaseInsensitive],'','',0);
  DM.KundeClientDataSet.IndexName:= IndexName;
Bis bald Chemiker

Hallo Chemiker

Das funktioniert nicht ganz. :?

Sortiert zwar die Einträge, aber da diese Datumsformat [dd.mm.yyyy hh:mm:ss]
haben, sortiert er nur nach der ersten Ziffer, aber nicht nach dem Datum .

so z.B.

01.08.2008 17:45:55
02.09.2008 13:45:13
08.01.2007 12:55:12
10.04.2008 11:23:45

mkinzler 31. Aug 2008 18:32

Re: Daten aufsteigend sortieren
 
Was für einen Typ hat das Feld?

grenzgaenger 31. Aug 2008 18:34

Re: Daten aufsteigend sortieren
 
auch wenn ich mich wiederhole, eine SQL DB kennt keine sortierung auf satzebene, wie die DB die sätze abspeichert ist ausschliesslich der angelegenheit des DBMS.

ggf. kann es sein, dass sich das DBMS so verhält wie erwartet, das ist aber reiner zufall und muss nicht heissen, dass dies auch in 2 monaten noch so ist...

daher, sortiert man die ausgabe aus der DBMS.. hierzu wird i.a.R. der select .. order by ... zur verfügung gestellt.

alternativ kannst du auch per hand sortieren... :-)


d.h. wenn du deine daten nur visualisieren willst, nimm 'n tQuery statt 'n tTable ... und sag es via SQL wie du deine daten aufbereitet haben möchtest...

wenn du deine daten noch zusätzlich bearbeiten willst... (neue sätze einfügen, etc.) ist handarbeit angesagt...


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:33 Uhr.
Seite 1 von 3  1 23      

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