Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Daten einer Datenbank ordnen? (https://www.delphipraxis.net/55630-daten-einer-datenbank-ordnen.html)

smart 24. Okt 2005 16:59

Datenbank: ABS • Version: 488 • Zugriff über: Datascore

Daten einer Datenbank ordnen?
 
Wie kann man die einer Datenbank ordnen? ZB. die Daten sollen mit 1 anfangern und am Ende alle mit Z. Hat Einer von Euch einen Tipp?

Luckie 24. Okt 2005 17:00

Re: Daten einer Datenbank ordnen?
 
Ordne sie mit der Abfrage. Stichwort: SQL, ORDER BY

Avax2k 24. Okt 2005 17:13

Re: Daten einer Datenbank ordnen?
 
wie der Vorredner bereits sagte:

wenn du ein DataSet als Source für das DbGrid verwendest könnte es so aussehen:

AdoDataSet1.CommandText := 'SELECT Spalte FROM Datenbank ORDER BY Spalte ASC';

Spalte ist dabei der Name deiner zu sortierenden Spalte
Datenbank ist der Name deiner datenbank
ASC bedeutet von Nummer-A-Z
DESC wäre dann von Z-A-Nummer

smart 25. Okt 2005 08:50

Re: Daten einer Datenbank ordnen?
 
Es ist mir schon bekannt, wie man die Daten bei der Ausgabe ordnen kann. Ich habe aber nach einer Möglichkeit gesucht, die Daten direkt in der Datenbank zu ordnen. Trotzdem vielen Dank.

Sharky 25. Okt 2005 09:21

Re: Daten einer Datenbank ordnen?
 
Hai Haike,

Zitat:

Zitat von smart
...die Daten direkt in der Datenbank zu ordnen. Trotzdem vielen Dank.

Das macht kein DBMS weil es ja keinen Sinn macht. Dann müssten die Daten ja ständig neu organisiert werden wenn ein Eintrag hinzukommt oder geändert wird.

Und da Du ja immer über einen SQL-Befehl auf die Tabelle zugreifst ist es doch eigentlich egal wie sie in der DB abgelegt sind.

RavenIV 25. Okt 2005 09:26

Re: Daten einer Datenbank ordnen?
 
Zitat:

Zitat von smart
Es ist mir schon bekannt, wie man die Daten bei der Ausgabe ordnen kann. Ich habe aber nach einer Möglichkeit gesucht, die Daten direkt in der Datenbank zu ordnen. Trotzdem vielen Dank.

warum willst du die Daten direkt in der DB ordnen?
ist doch eigentlich wurscht, wie die Daten in der DB liegen.
Lass diese Arbeit doch die DB erledigen und hol die Daten dann geordnet (ORDER BY) aus der DB raus.

gruessle

marabu 25. Okt 2005 09:37

Re: Daten einer Datenbank ordnen?
 
Hallo Heike,

es ist nicht üblich Tabellen in relationalen Datenbanksystemen physisch zu ordnen, da für solche Tabellen die Ordnung bei der Ausgabe nur von der ORDER BY Klausel garantiert wird - und auch nur für eindeutige Sortierbegriffe. Die Ordnung wäre beim nächsten Einfügen verloren. Wenn du die eine bestimmte Ordnung immer benötigst, dann erzeuge dir eine View:

SQL-Code:
CREATE VIEW CountryByName AS
  SELECT * FROM country
    ORDER BY name
Du kannst dann die View wie eine sortierte Tabelle verwenden. Wenn du trotzdem aus irgendeinem Grund eine physisch sortierte Tabelle haben möchtest - tatsächlich kann ich mir ausgefallene Gründe denken - dann wirst du über eine temporäre Hilfstabelle gehen müssen:

SQL-Code:
INSERT INTO temp SELECT * FROM country ORDER BY name
Das alles muss ABS natürlich ertmal unterstützen. Und dabei ist noch nicht einmal sicher, ob ABS die eingefügten Sätze in sequentieller Folge speichert. Wird ein Seitenspeicher-Konzept verwendet, dann kann es passieren, dass die Sätze doch in einer anderen Folge abgespeichert werden.

Grüße vom marabu

PS: you did it again, Sharky ...

smart 25. Okt 2005 09:38

Re: Daten einer Datenbank ordnen?
 
Zitat:

Zitat von RavenIV
warum willst du die Daten direkt in der DB ordnen?

Ganz einfach, eine Bekannte von mir hat ein Adressenprogramm (habe leider keinen Code davon). Dieses bietet nicht die Möglichkeit an, die Daten zu ordnen. Deswegen dachte ich, man könne ein kleines Tool schreiben, welches die Daten dann in der Datenbank ordnet.

Bernhard Geyer 25. Okt 2005 09:42

Re: Daten einer Datenbank ordnen?
 
Zitat:

Zitat von smart
Zitat:

Zitat von RavenIV
warum willst du die Daten direkt in der DB ordnen?

Ganz einfach, eine Bekannte von mir hat ein Adressenprogramm (habe leider keinen Code davon). Dieses bietet nicht die Möglichkeit an, die Daten zu ordnen. Deswegen dachte ich, man könne ein kleines Tool schreiben, welches die Daten dann in der Datenbank ordnet.

Wahrscheinlich benötigt er diese physikalische Ordnung bezüglich Performance-Aspekten. Bei Datenbanken definierst Du dir einfach einen Index wenn du einen schnellen geordneten Zugriff nach dieser Spalte benötigst.

smart 25. Okt 2005 09:50

Re: Daten einer Datenbank ordnen?
 
Wenn ein Ordnen der Datenbank direkt nicht möglich ist, kann man, So wie ich das sehen, dann nur alle Daten in Stringlisten einlesen, ordnen und dann wieder zurück in die Datenbank schreiben und abspeichern.

RavenIV 25. Okt 2005 09:51

Re: Daten einer Datenbank ordnen?
 
Zitat:

Zitat von smart
Zitat:

Zitat von RavenIV
warum willst du die Daten direkt in der DB ordnen?

Ganz einfach, eine Bekannte von mir hat ein Adressenprogramm (habe leider keinen Code davon). Dieses bietet nicht die Möglichkeit an, die Daten zu ordnen. Deswegen dachte ich, man könne ein kleines Tool schreiben, welches die Daten dann in der Datenbank ordnet.

machen kann man das schon, aber mit endlichem Aufwand.
Du musst die Daten aus der DB löschen und in geordneter Reihenfolge wieder einfügen.
oder du benennst die Original-Tabelle(n) um und kopierst die Daten in geordneter Folge in eine neue Tabelle(n).
Jedoch ist nach jedem INSERT oder UPDATE deine Ordnung wieder zerstört.

Einfacher wäre es sicher, wenn man das Adressprogramm so modifizieren würde, dass es die Daten geordnet von der DB holen kann.

gruessle

smart 25. Okt 2005 10:00

Re: Daten einer Datenbank ordnen?
 
Das Adressenprogramm sollte eine kleine Besonderheit haben, wenn man z.B. ein A eingibt, dann sollten alle Namen die mit A beginnen angezeigt werden. Wenn ich so ein Adressenprogramm ganz neu schreiben würde, wie könnte man denn diese Besonderheit mit DbGrid lösen? Hätte Einer von Euch einen Ansatz?

Sharky 25. Okt 2005 10:05

Re: Daten einer Datenbank ordnen?
 
Zitat:

Zitat von smart
... wie könnte man denn diese Besonderheit mit DbGrid lösen? Hätte Einer von Euch einen Ansatz?

Auch wenn ich damit mein Essen bei Dir aufs Spiel setze ;-)

Neue Frage -> Neuer Thread.

smart 25. Okt 2005 10:08

Re: Daten einer Datenbank ordnen?
 
Zitat:

Zitat von Sharky
Auch wenn ich damit mein Essen bei Dir aufs Spiel setze ;-)
Neue Frage -> Neuer Thread.

Natürlich nicht, Ich bitte um Entschuldigung.

mschaefer 25. Okt 2005 10:31

Re: Daten einer Datenbank ordnen?
 
Ok im anderen Thread dann.. // Martin


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 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