2016-08-12 3 views
1

Es scheint, wenn ich Daten an das TClientDataSet anhänge, werden sie nicht in der Reihenfolge gespeichert, die ich ihnen angehängt habe. Manchmal sind sie und manchmal nicht. Gibt es eine Option, die Daten in der gleichen Reihenfolge zu haben, wie z.B. lese sie aus einer Datei oder Datenbank?ClientDataSet: Speichern Sie Daten in der Reihenfolge, in der sie angehängt werden

Ich möchte vermeiden, eine separate Spalte zu erstellen, um die Position zu speichern und einen Index für sie festzulegen.

+0

Nein, das ist nicht möglich. –

+0

Ich glaube nicht, dass es eine Down-Abstimmung braucht. Es ist eine vernünftige Frage, verständlich gefragt. –

+0

Dies ist die Natur von fast jeder Datenbank-Engine. SQL Server funktioniert auf diese Weise sogar. Haben Sie kein ID-Feld mit automatisch inkrementierenden Zahlen? Aus diesem Grund habe ich mich nie auf die automatische Sortierung verlassen. Nur du weißt, wie du es sortiert haben willst, das ist nicht automatisch. –

Antwort

1

Mit Datenbanken, einschließlich des TClientDataset, können Sie niemals davon ausgehen, dass die Daten in der Reihenfolge, in der Sie sie eingefügt haben, oder in einer bestimmten Reihenfolge aus der Datenbank kommen.

Wenn die Reihenfolge wichtig ist, verwenden Sie eine andere Spalte, um den Anzeigenauftrag zu speichern, oder leiten Sie den Auftrag aus einer anderen Spalte ab.

Einer der Gründe dafür ist, dass die Datenbank beim Löschen einer Zeile die anderen Zeilen nicht bündelt, um die Lücke zu füllen, sondern die Lücke wiederverwendet, wenn ein neuer Datensatz hinzugefügt wird.

Es gibt einen ftAutoInc-Feldtyp, der mit TClientDataset verwendet werden kann. Es gibt also nicht viel zu tun, um sich um die neue Spalte zu kümmern.

+0

das ist Dataset-Implementierung abhängig – vavan

+0

Es ist, aber eine gute Faustregel zu arbeiten. Jede Datenbank und jeder Datensatz, an dem ich gearbeitet habe, hat dieses Verhalten gezeigt. Ich verlasse mich nie auf die natürliche Anordnung von Daten, die aus einem Datenspeicher kommen. Grüße, –

+0

das bedeutet nicht, dass es keine Ausnahmen gibt. Manchmal kann man also davon ausgehen, dass die Daten in der Reihenfolge aus der Datenbank kommen, in der sie in – vavan

Verwandte Themen