Delphi-PRAXiS
Seite 2 von 4     12 34      

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)

merlin17 5. Dez 2003 00:36

Re: Inhalt eine Datenbank nach Datum sortieren... .
 
hi,

ist zwar etwas offTopic: < :dp: >, sorry

<<DOA ist so ziemlich die genialste Art von Delphi auf eine DB zu kommen. >>
schon die neue oder noch 3.4 ?? habe den umstieg noch nicht gewagt...


:-) thomas

r_kerber 5. Dez 2003 07:00

Re: Inhalt eine Datenbank nach Datum sortieren... .
 
Hallo LuckyStrike4life,

Zitat:

Zitat von LuckyStrike4life
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.

Vielleicht kannst Du ja mal beschreiben, wie bei Dir die einezelnen Komponenten (TDatabase, TQuery, TDatasource, TDBGrid) miteinander verknüpft sind.
Zitat:

Zitat von GeorgeWNewbie
Ich habe noch nie etwas wie "t:eDienstreisebuch\mainDB.dbf" als Tabelle in einem SQL-Statement gesehen.

So etwas kann man bei dBase zwar machen, ist aber absolut unsinnig. Bei vernünftiger Verwendung der db-Komponenten genügt die Angabe von mainDB!

LuckyStrike4life 5. Dez 2003 11:10

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

Zitat von r_kerber
Hallo LuckyStrike4life,

Zitat:

Zitat von LuckyStrike4life
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.

Vielleicht kannst Du ja mal beschreiben, wie bei Dir die einezelnen Komponenten (TDatabase, TQuery, TDatasource, TDBGrid) miteinander verknüpft sind.
Zitat:

Zitat von GeorgeWNewbie
Ich habe noch nie etwas wie "t:eDienstreisebuch\mainDB.dbf" als Tabelle in einem SQL-Statement gesehen.

So etwas kann man bei dBase zwar machen, ist aber absolut unsinnig. Bei vernünftiger Verwendung der db-Komponenten genügt die Angabe von mainDB!

Ich würde gerne nicht den ganzen Pfad angeben, dass macht mir die Arbeit schwer. Ihr müsst wissen, alle Datenbanken des Programmes liegen auf nem Server. Über das Laufwerk 't:' zu erreichen. Die Anwendung liegt bei allen Usern als 'exe' aufm Rechner.
Leider gibt es zwei Standorte des Unternehmens, im zweiten heißt das Serverlaufwerk 'g:', also muss ich dafür jeden Verweis wieder umschreiben.
Wenn ich aber nur 'mainDB' als Angabe der Datenbank schreibe, gibts nur Fehlermeldungen das die Datenbank(en) unter dem Ordner in dem das Programm liegt, nicht gefunden werden konnte.

Die Verknüpfung der relevanten Komponenten:
Es gibt eine TTable Komponente, die verweißt auf die MainDB.DBF Datenbank. Ein TDataSource verweißt mit der Eigenschaft 'DataSet' auf die TTable. Der Query ist auf den Datasource der TTable ausgerichtet. Der TDBGrid greift auch auf den benannten TDataSource zu.

Ich hoffe es ist verständlich, wenn nicht - dann einfach fragen.

r_kerber 5. Dez 2003 11:27

Re: Inhalt eine Datenbank nach Datum sortieren... .
 
Hallo LuckyStrike4life,

Zitat:

Zitat von LuckyStrike4life
Es gibt eine TTable Komponente, die verweißt auf die MainDB.DBF Datenbank. Ein TDataSource verweißt mit der Eigenschaft 'DataSet' auf die TTable. Der Query ist auf den Datasource der TTable ausgerichtet. Der TDBGrid greift auch auf den benannten TDataSource zu.

Dann kann das auch nicht funktionieren. Du sortierst die Query und die liegt hinter der Datasource. Die Datasource bleibt somit unsortiert!
Benutze doch für die Verbindung zur Datenbank eine TDatabase und richte rechnerspezifisch BDE-Aliase ein. das kann schon bei der Installation automatisch gemacht werden. Dann kannst Du die TTable rausschmeißen und dafür die TQuery nutzen
Wenn Du Deine Struktur jedoch beibehalten willst, dann mußt Du hinter Deine Query noch eine Datasource legen un an diese das DBGrid anbinden.

LuckyStrike4life 5. Dez 2003 11:54

Re: Inhalt eine Datenbank nach Datum sortieren... .
 
Thx r-kerber,
leider würde es nicht so gut sein, wenn ich die ganze Struktur verändere, denn das Programm läuft schon auf knapp 90 Rechnern. Es sind nur noch die Änderungen wegen den Wünschen der User.

Nun hab ich mal das versucht, was du mir empfohlen hast.
Ich hab n neuen Query angelegt (querysort), dann ein Datasource (sortDatasource) und den Grid des Forms auf den Sortdatasource gelegt. Der Query steht in der Eigenschaft DataSource: nun auf sortDatasource. In der Eigenschaft DatabaseName: hab ich nichts eingetragen.

Den Code hab ich natürlich auch umgeschrieben:

Delphi-Quellcode:
Querysort.Close;
Querysort.SQL.Clear;
Querysort.SQL.Add('select DATUM from "t:eDienstreisebuch\mainDB.dbf" ORDER BY DATUM');
Querysort.Active:=True;
Leider fehlt da wohl noch etwas... . Es wird, sobald ich auf den Button klicke der die Funktion beinhaltet, weiterhin nichts im Grid angezeigt... .

r_kerber 5. Dez 2003 12:16

Re: Inhalt eine Datenbank nach Datum sortieren... .
 
Die SortDatasource muß auf Query, während query weiterhin auf die erste datasource geht!

LuckyStrike4life 5. Dez 2003 12:29

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

Zitat von r_kerber
Die SortDatasource muß auf Query, während query weiterhin auf die erste datasource geht!

Thx euch allen!!!

jetzt sortiert er und gibt es im Grid aus! Juhuu!

Nur leider schaut Delphi nur nach den ersten zwei Zahlen, sprich TT.MM.JJJJ und nur nach TT wird sortiert, was nicht so gut ist, denn so ist die Sortierung noch nicht richtig.

Aber ich bin jetzt schon ein risiges Stück weiter, nochmals DANKE!!
Wer noch Ideen hat, wie ich das Datum als ganzes ansehen lassen kann und danach sortiert wird, der solls nur sagen.

r_kerber 5. Dez 2003 12:35

Re: Inhalt eine Datenbank nach Datum sortieren... .
 
Welchen Typ hat das feld in dem das Datum steht?

LuckyStrike4life 5. Dez 2003 12:38

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

Zitat von r_kerber
Welchen Typ hat das feld in dem das Datum steht?

C - Zeichen (dBase meint damit 'Zeichen aller Art') das kann ich aber ändern. Was wäre gut?

r_kerber 5. Dez 2003 15:39

Re: Inhalt eine Datenbank nach Datum sortieren... .
 
Dann ist natürlich klar, warum nur nach der Tageszahl sortiert wird. Es wird ganz "normal" alphanumerisch sortiert. Besser wäre eine Datumsformat für diese Spalte. Aber versuche es mal so:
SQL-Code:
select *, CAST(DATUM AS Date) AS SortDate
FROM "t:eDienstreisebuch\main.dbf"
ORDER BY SortDate
Vielleicht funktioniert's.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 Uhr.
Seite 2 von 4     12 34      

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