![]() |
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:
Was ist daran falsch ?
procedure TForm1.Oeffnen1Click(Sender: TObject);
begin Clientdataset1.IndexDefs.Add('IDAbfahrtszeit', 'Abfahrtszeit', [ixCaseInsensitive]) ; . . . . end;; |
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. |
Re: Daten aufsteigend sortieren
Hallo Thomm,
probier's damit:
Delphi-Quellcode:
mfg
Clientdataset1.IndexDefs.Add('IDAbfahrtszeit', 'Abfahrtszeit', [ixCaseInsensitive, ixDescending]);
eddy |
Re: Daten aufsteigend sortieren
Zitat:
|
Re: Daten aufsteigend sortieren
<delete>
|
Re: Daten aufsteigend sortieren
Irgendwie muss man doch die Einträge sortieren können.
Gibts doch nicht. Vielleicht hat DBGrid ne Eigenschaft zum Sortieren. |
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 |
Re: Daten aufsteigend sortieren
Zitat:
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 |
Re: Daten aufsteigend sortieren
Was für einen Typ hat das Feld?
|
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... |
Re: Daten aufsteigend sortieren
Zitat:
|
Re: Daten aufsteigend sortieren
Eine Sortierung nach der ersten Ziffer hört sich nicht nach Datumstyp an
|
Re: Daten aufsteigend sortieren
Zitat:
Delphi-Quellcode:
so werden sie in die DB eingetragen
ClientDataSet1Abfahrtszeit.AsDateTime := frac(datetimepicker3.time)+ trunc( datetimepicker1.date);
|
Re: Daten aufsteigend sortieren
Das heisst aber nicht das das Feld diesen Typ hat.
|
Re: Daten aufsteigend sortieren
Hallo Thomm,
bei mir wird auch ein Datum richtig sortiert. @grenzgaenger: Er hat ja keine richtig Datenbank. Und die Sortierung funktioniert so. Man muss allerdings auch anmerken das die Index-Erstellung nur temporär ist. Bis bald Chemiker |
Re: Daten aufsteigend sortieren
Zitat:
DataType = ftDateTime |
Re: Daten aufsteigend sortieren
Ich hab den Fehler gefunden. :shock:
Bei dem Feld 'Abfahrtszeit' war statt TDateTime Tstring als Feldtyp eingetragen. Deswegen hat er nur nach der ersten Ziffer sortiert :cry: Ich hab das geändert , jetzt funktioniert es. DANKE |
Re: Daten aufsteigend sortieren
Hallo Thomm,
zumindest funktioniert es mit dBase-, Paradox- und ADS-Datenbanken. Meine Tabelle (=DBGrid) soll nach einem Feld vom Type TDateTime so sortiert werden, daß der neueste Eintrag ganz oben steht. Als SQL-Sortierung für eine (ADS-)Datenbank namens TERMIN wird damit nach dem Feld DATUM in austeigender oder absteigender (DESC) Reihenfolge sortiert.
Delphi-Quellcode:
Habe allerdings keine Erfahrung mit MyBase sowie dem von Dir definierten Zugriff über Clientdataset.
select * from termin order by datum
select * from termin order by datum desc mfg eddy |
Re: Daten aufsteigend sortieren
Weiß vielleicht jemand , wie man die Anzahl der Einträge in die Datebank anzeigen kann ?
|
Re: Daten aufsteigend sortieren
.RecordCount?
|
Re: Daten aufsteigend sortieren
Zitat:
Delphi-Quellcode:
Clientdataset1.RecordCount
|
Re: Daten aufsteigend sortieren
Stimmt.......funktioniert
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 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