![]() |
Sortierung der daten in datenbank
hallo.
ich habe eine datenbank (paradox___table1) mit den komponenten terminnummer, datum und uhrzeit. wenn ich jetzt neue daten in die datenbank schreibe werden die nur hinten angefügt... wie ist der quellcode das die daten nach datum und dann noch nach uhrzeit sortiert in meinem dbgrid1 ausgegeben werden? :wiejetzt: |
Re: Sortierung der daten in datenbank
Hallo,
SELECT * FROM tabelle ORDER BY terminnummer DESC/ASC mit DESC oder ASC kannst es entweder absteigend oder aufsteigend sortieren |
Re: Sortierung der daten in datenbank
sorry aber ich werde aud deinem quelltext nicht schlau...
select erkennt der compiler nicht und außerdem will ich nach datum und dann nach uhrzeit sortieren und nicht nach terminnummern... :? |
Re: Sortierung der daten in datenbank
Hallo,
ich habe die auch keinen Quelltext geschrieben. Ich habe Dir das SQL Statement für die TQuery Komponente gegeben. Ich dachte, wenn Du eine Datenbank verwendest würdest Du wissen was SELECT bedeutet. Wenn Du nach Datum und dann nach Uhrzeit sortieren möchtest kannst Du folgenden SQL-Ausdruck verwenden. SELECT * FROM tabelle ORDER BY datum,uhrzeit |
Re: Sortierung der daten in datenbank
Das ist ja auch kein Delphi-Quelltext sonder ein SQL-Statement. Dafür brauchst Du eine TQuery-Komponente!
|
Re: Sortierung der daten in datenbank
ich arbeite aber nicht mit ner query...bin auch eher bei vcl...
entweder sitz ich jetzt schon zu lange vor dem rechner bzw. dem programm oder ich weiß auch nicht warum ich das hier nicht verstehe... :wall: |
Re: Sortierung der daten in datenbank
Hallo Fengi,
TQuery ist VCL. In der Komponenenpalette auf dem Register Datenzugriff die dritte Komponente von links. Zeige uns doch mal wie Du auf die Paradox Tabelle zugreifst. |
Re: Sortierung der daten in datenbank
generell einfach:
Delphi-Quellcode:
und im dbgrid1
table1.FieldByName('Datum').AsString:=datetostr(monthcalendar1.Date);
table1.FieldByName('Beschreibung').AsString:=dbedit2.Text; table1.FieldByName('Uhrzeit').AsString:=edit1.Text;
Delphi-Quellcode:
table1.Open;
monthcalendar1.Date:=date; //nur anzeigen der Datenbankkomponenten Datum,Uhrzeit und Beschreibung dbgrid1.Columns.Clear; i:=0; dbgrid1.Columns.Add; dbGrid1.Columns.Items[i].FieldName:='Datum'; dbgrid1.Columns.Items[i].Width:=50; inc(i); dbgrid1.Columns.Add; dbGrid1.Columns.Items[i].FieldName:='Uhrzeit'; dbgrid1.Columns.Items[i].Width:=50; inc(i); dbgrid1.Columns.Add; dbGrid1.Columns.Items[i].FieldName:='Beschreibung'; dbgrid1.Columns.Items[i].Width:=30 |
Re: Sortierung der daten in datenbank
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich habe Dir ein kleines Beispiel angehängt. Ich habe dafür keine einzige Zeile Code geschrieben. Alles über den Objektinspektor zusammengeklickt. Das Beispiel greift über den Alias DBDEMOS auf die country.db Tabelle zu. Über: SELECT * FROM country ORDER BY area DESC werden die Datensätze nach dem Inhalt der Spalte area aufsteigend sortiert. (Achtung: Bei DBase ist nicht area sondern eine 0 anzugeben) Damit im Grid nicht alle Spalten angezeigt werden habe ich im Objektinspektor die Colmuns Eigenschaft des TDBGird entsprechend angepasst. |
Re: Sortierung der daten in datenbank
sorry.
nicht das du denkst ich will dich an der nase rumführen.aber ich versteh nicht wie du das meinst... die daten die du mir geschickt hast sind auch nicht sortiert oder? ich kapier das jedenfalls leider nicht. :( |
Re: Sortierung der daten in datenbank
Stimmt. Du hast recht. Die Daten sind nicht sortiert.
Da war ich etwas zu schnell. In der SQL Eigenschaft von TQuery muss ja auch SELECT * FROM country ORDER BY area DESC stehen |
Re: Sortierung der daten in datenbank
wenn du z.B. nach datum sortieren willst brauchst du blos einen Index einzuführen. Diesen vergibst du in der Datenbankoberfläche. Du musst dafür nichts programmieren.
Es handelt sich dann um einen Sekundärindex, dem du das Datumsfeld hinzufügst. |
Re: Sortierung der daten in datenbank
Hallo Fengi,
Index auf Datum legen, also Tabelle nicht sortieren sondern nur indizieren (geht schneller):
Code:
Du mußt natürlich Deine Feldbezeichner verwenden. Falls Du kein Feld ID für den PrimärIndex hast, ergänze Deine DB (ID muß 1. Feld in der Liste sein) oder denk' Dir ein anderes Feld als Primärindex aus.
procedure TFTermin.Indexneuaufbauen1Click(Sender: TObject);
begin Tab1.Close; Tab1.Exclusive := true; Tab1.Open; Tab1.IndexDefs.Clear; Tab1.IndexDefs.Update; Tab1.AddIndex('','ID', [ixPrimary]); // ID vom Typ ftAutoInc evtl. Deine Terminnummer Tab1.IndexDefs.Update; Tab1.AddIndex('Datum', 'Datum;Zeit', [ixCaseInsensitive]); // Datum; Uhrzeit Tab1.IndexDefs.Update; Tab1.AddIndex('Such', 'Such', [ixCaseInsensitive]); // Beschreibung Tab1.IndexDefs.Update; Tab1.Close; Tab1.Exclusive := false; Tab1.Open; end; Anwendung:
Code:
mfgconst ixDatum = 'Datum'; procedure TFTermin.FormActivate(Sender: TObject); begin .... UP_DBActiv(Tab1,SessN,DataPath,fnTermin); // Termin-DB öffnen try Tab1.IndexName := ixDatum; except Indexneuaufbauen1.Click; Tab1.IndexName := ixDatum; end; .... eddy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 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-2025 by Thomas Breitkreuz