Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Firebird: Unterschied zw. mehreren Datenspalten feststellen (https://www.delphipraxis.net/43538-firebird-unterschied-zw-mehreren-datenspalten-feststellen.html)

Michael_Bayer 5. Apr 2005 15:29


Firebird: Unterschied zw. mehreren Datenspalten feststellen
 
Hallo!
Ich möchte die ersten 2 (später auch mehrere) Zeilen einer Firebird-Datenbank-Tabelle nach Unterschieden untersuchen.
Ein Eintrag war schon da und ein anderer kam hinzu und ich möchte herausfinden, welche Felder sich unterscheiden.

*aufmal*
Delphi-Quellcode:
Spalte1 -- Spalte2   --    Spalte3
1          2               3
1          4(UNTERSCHIED!) 3
*/aufmal*

Im Prinzip kann ich alle Daten abfragen und vergleichen (wenn feld1 von datensatz1 != feld1 von datensatz2 dann Unterschied(datensatz1.feld1,datensatz2.feld1) )
aber für mich sieht das etwas umständlich aus.

Ich kann mir auch nicht vorstellen, dass es dafür spezielle Funktionen gibt, aber ich wollte nur mal fragen, ob ich da im Prinzip richtig denke oder ob es eine andere, einfachere, Methode gibt...

Gruß
Micha

Jasocul 5. Apr 2005 15:42

Re: Firebird: Unterschied zw. mehreren Datenspalten feststel
 
Ich glaube ein group by könnte da hilfreich sein.
Wenn alles gleich wäre, dürfte das Ergebnis nur eine Zeile sein. Gibt es Unterschiede, erhältst du mehrere Datensätze.

Jelly 5. Apr 2005 16:51

Re: Firebird: Unterschied zw. mehreren Datenspalten feststel
 
Zitat:

Zitat von Michael_Bayer
Ich möchte die ersten 2 (später auch mehrere) Zeilen einer Firebird-Datenbank-Tabelle nach Unterschieden untersuchen.

Firebird ist eine mengenorientierte Datenbank, und da gibt es keine ersten 2, sondern immer Ergebnismengen.

Was willst du denn anstellen bei deinem Vergleich?

Michael_Bayer 5. Apr 2005 17:13

Re: Firebird: Unterschied zw. mehreren Datenspalten feststel
 
Im Prinzip soll das eine Art Historyfunktion werden.
Wir haben also einen bestehenden Eintrag in der Tabelle und es kommen regelmäßig ein Neuer dazu (ob jetzt immer nur 2 in der Tabelle stecken, indem der jeweils Ältere gelöscht wird, weiß ich noch nicht)

Jetzt muss man ausgeben können:
Der aktuellere Datensatz unterscheidet sich von dem vorherigen in Feld1,2,5 und 7.
:coder2:

Jelly 5. Apr 2005 17:22

Re: Firebird: Unterschied zw. mehreren Datenspalten feststel
 
Zitat:

Zitat von Michael_Bayer
Jetzt muss man ausgeben können:
Der aktuellere Datensatz unterscheidet sich von dem vorherigen in Feld1,2,5 und 7.

Wie bereits gesagt, es gibt keinen ersten und keinen zweiten. Die Reihenfolge, in der du die Datensätze anzeigst legst du mit order by fest... Klar ist, du brauchst einen Zusammenhang zwischen deinen Datensätzen. Dafür würde ich ein eigenes Feld hinzufügen. Gibst du beim Hinzufügen eines neuen Datensatzes auch noch ein Timestamp mit an, so kannst du mit
SQL-Code:
select * from Tabelle where Kriteriumsfeld = :Kriterium order by Datum
dir die Datensätze ausgeben. Danach bleibt dir wohl nichts anderes übrig, als die einzelnen Felder in Delphi miteinander zu vergleichen.

Michael_Bayer 5. Apr 2005 17:35

Re: Firebird: Unterschied zw. mehreren Datenspalten feststel
 
Hmm - könnte ich das mit einer StoredProcedure machen?
(Wäre das sinnvoll? Man sollte ja schließlich soviel wie möglich INNERHALB dem RDBMS machen lassen)

Jelly 5. Apr 2005 19:29

Re: Firebird: Unterschied zw. mehreren Datenspalten feststel
 
In welcher Form willst du denn schliesslich dein Ergebnis erhalten. Es wird immer auf ein Grid auslaufen


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