Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Inhalt eine Datenbank nach Datum sortieren... . (https://www.delphipraxis.net/12804-inhalt-eine-datenbank-nach-datum-sortieren.html)

LuckyStrike4life 4. Dez 2003 13:16


Inhalt eine Datenbank nach Datum sortieren... .
 
Morgen,

Ein DBGrid auf nem Form muss sich ordnen. D.h. die Einträge müssen sich nach dem Datum richten.
Das Datum steht in der ersten Spalte 'Datum'.

Das Datum wird immer in der Form TT.MM.JJJJ eingetragen, geht über nen DateTimePicker, ist also genormt - so das keine unterschiedlichen Formate eingetagen werden.

Jetzt ist es wichtig, dass in der Datenbank die Datensätze mit dem "ältestem" Datum am Anfang stehen.

Leider ist das Datum in keiner Weise von dem Datum der Einstellung des jeweiligen Datensatzes abhängig, daher hilft mir die normale Sortierung nicht.
Es muss nach dem vom User angegebenem Datum sortiert werden.

Es handelt sich um eine DBase Datenbank,
vermutlich komm ich um eine SQL Anweisung nicht herum - allerdings fehlen mir da die Erfahrungen.

Ideen?

Robert_G 4. Dez 2003 13:21

Re: Inhalt eine Datenbank nach Datum sortieren... .
 
Ich würde sagen versuch's mal mit:
SQL-Code:
   SELECT  *
   FROM    [deine Tabelle]
   ORDER BY [DatumsFeld]

LuckyStrike4life 4. Dez 2003 13:51

Re: Inhalt eine Datenbank nach Datum sortieren... .
 
Zitat:

Zitat von GeorgeWNewbie
Ich würde sagen versuch's mal mit:
SQL-Code:
   SELECT  *
   FROM    [deine Tabelle]
   ORDER BY [DatumsFeld]

Danke,
ich habs jetzt mal so versucht:
Delphi-Quellcode:
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from "t:eDienstreisebuch\main.dbf" ORDER BY "DATUM"');
Query1.Active:=True;
Das Programm wird auch ganz normal kompiliert, aber wenn ich dann auf den Button klick, der die Funktion ausführen soll, dann bricht das Programm mit ner Fehlermeldung ab.

Im Projekt soundso.exe ist eine Exception der Klasse EDBEngineError aufgetreten. Meldung: 'Ungültiges Schlüsselwort
Symbol-String: "DATUM"
Zeilennummer: 1'. Prozeß wurde angehalten. Mit Einzelne ...

Robert_G 4. Dez 2003 14:05

Re: Inhalt eine Datenbank nach Datum sortieren... .
 
Du kannst als Tabellenname nicht die physische Datei (XXX.dbf) angeben.
Schau dir mal dir OH zu ADO an.
Wenn du bereits Daten im Grid hast, dann steht die Connection zur DB anscheinend.

Du solltest als Tabellenname den Namen der Tabelle in der DB benutzen.
(Die hast du wahrscheinlich auch schon der Datasource des Grids gegeben)

z.B.:
SQL-Code:
   SELECT  *
   FROM    DienstReiseBuch
   ORDER BY Datum
Auf jeden Fall noch etwas in der OH stöbern. :cyclops:

LuckyStrike4life 4. Dez 2003 14:18

Re: Inhalt eine Datenbank nach Datum sortieren... .
 
Zitat:

Zitat von GeorgeWNewbie
Du kannst als Tabellenname nicht die physische Datei (XXX.dbf) angeben.
Schau dir mal dir OH zu ADO an.
Wenn du bereits Daten im Grid hast, dann steht die Connection zur DB anscheinend.

Du solltest als Tabellenname den Namen der Tabelle in der DB benutzen.
(Die hast du wahrscheinlich auch schon der Datasource des Grids gegeben)

z.B.:
SQL-Code:
   SELECT  *
   FROM    DienstReiseBuch
   ORDER BY Datum
Auf jeden Fall noch etwas in der OH stöbern. :cyclops:

Ja,
die Verbindung zur Datenbank besteht. Das Programm ist eigentlich auch schon fertig, dass sind nur noch Änderungen auf Wunsch der User hin.

Auch im Datasource des Grids wird auf den Datasource der Tabelle hingewiesen.
Aber wenn ich jetzt einfach den Namen, an Stelle von dem ganzem Pfad, in den Code einbinde, dann läßt es sich nicht mal kompilieren.
Ich hab auch schon so eine SQL Anweisung zum löschen der Datenbank auf dem Form, da musste ich auch den ganzen Pfad angeben:
Delphi-Quellcode:
procedure TForm1.BitBtn5Click(Sender: TObject);
begin
   if MessageDlg('Den kompletten Inhalt der Datenbank löschen?', mtWarning, [mbYes, mbNo], 0) = mrYes then
  begin
     Query1.Close;
     Query1.SQL.Clear;
     Query1.SQL.add('DELETE FROM "t:eDienstreisebuch\mainDB.dbf"');
     Query1.ExecSQL;
     mainDBtabelle.refresh;
  end;
end;
Das Teil geht. Komisch ... .

Edit:
Übrigens nutze ich keine ADO Komponenten, sondern nur DB Komponenten. Ist das dafür relevant?

Robert_G 4. Dez 2003 14:51

Re: Inhalt eine Datenbank nach Datum sortieren... .
 
Da du ihm die Daten als String übergibst wird in jedem Fall kompilieren - selbst wenn du 'Hallo' reinschreibst.

Ich habe noch nie etwas wie "t:eDienstreisebuch\mainDB.dbf" als Tabelle in einem SQL-Statement gesehen. :wiejetzt:
Mag in DBase aber vieleicht durchgehen - keine Ahnung. :gruebel:

Versuch's mal ohne " vor und nach DATUM - vielleicht funzt es ja dann.

LuckyStrike4life 4. Dez 2003 15:12

Re: Inhalt eine Datenbank nach Datum sortieren... .
 
Wenn ich es so schreibe:
Delphi-Quellcode:
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from "t:eDienstreisebuch\mainDB.dbf" ORDER BY DATUM');
Query1.Active:=True;
Dann gibts auch keine Fehlermeldung mehr, wenn ich auf den Button Click, aber leider tritt der Erfolg nicht ein.
D.h. die Daten werden leider nicht geordnet.

Robert_G 4. Dez 2003 15:21

Re: Inhalt eine Datenbank nach Datum sortieren... .
 
Sorry hier verlässt es mich :angle:

Ich benutze weder ADO, BDE, ODBC...

Das Package, dass ich nutze enkapselt direkt die API meiner DB (Oracle), deshalb kann ich dir bei bestem Willen nicht mit solchen BDE-Basteleien helfen.

Außerdem habe ich auch noch einen Job...


Waidmanns heil :zwinker:

LuckyStrike4life 4. Dez 2003 15:26

Re: Inhalt eine Datenbank nach Datum sortieren... .
 
Danke für deine Hilfe,

auf Oracle muss hier nächstes Jahr auch alles umgestellt werden, ich freu mich nicht gerade drauf.

Nochmals, mein Dank für deine Zeit.
Vielleicht findet sich wer, der mehr davon versteht als wir beide :? .

Robert_G 4. Dez 2003 22:57

Re: Inhalt eine Datenbank nach Datum sortieren... .
 
Du wirst deine Meinung schon noch ändern.
Spätestens wenn du dann mal über diese Website gestolpert bist:
allround-automations
Ich benutze alle 3 Produkte und DOA ist so ziemlich die genialste Art von Delphi auf eine DB zu kommen.
:lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:54 Uhr.
Seite 1 von 4  1 23     Letzte »    

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