Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Jedes Feld in Tabelle vergleichen (https://www.delphipraxis.net/19629-jedes-feld-tabelle-vergleichen.html)

Mauli 6. Apr 2004 10:20


Jedes Feld in Tabelle vergleichen
 
Hallo zusammen,

ich suche ein möglichst geschickten Weg zwei Tabellen Feld für Feld zu vergleichen.

Ziel soll sein eine Vortagstabelle mit einer aktuellen zu vergleichen und in der aktuellen die Änderungen sichtbar machen.

Also wenn sich in der 32sten Zeile in der 3ten Spalte etwas geändert hat, dann möchte ich genauch das wissen und ggf. in einem Grid hervorheben :gruebel:

Vielleicht hat ja jemand so etwas schon gemacht.

Über ein kleines Codebeispiel wäre ich riesig dankbar!

Dank

Robert_G 6. Apr 2004 10:48

Re: Jedes Feld in Tabelle vergleichen
 
So bekommst du nur die Einträge aus der Aktuellen Tabelle, die sich seit dem Vortag geändert haben.
SQL-Code:
SELECT *
FROM  AktuelleTabelle
MINUS
SELECT *
FROM  VortagsTabelle

Mauli 6. Apr 2004 10:58

Re: Jedes Feld in Tabelle vergleichen
 
Danke,

damit komme ich allerdings nicht an die Stelle in der Tabelle.

Robert_G 6. Apr 2004 10:59

Re: Jedes Feld in Tabelle vergleichen
 
Aber du kommst na alle geänderten Stellen. :mrgreen:
Mit der Info kannst du dann machen, was immer du willst...

MrSpock 6. Apr 2004 11:00

Re: Jedes Feld in Tabelle vergleichen
 
Hallo Robert_G,

so viel ich weiß, wird MINUS weder von lacal SQL noch z.B. von Interbase/Firebird unterstützt!?

Mauli 6. Apr 2004 11:01

Re: Jedes Feld in Tabelle vergleichen
 
Das kommt dazu...

Ich habe das gerade auf dem MS SQL getestet. Mit zwei gleichen Tabellen. Da gibt die SQL die ganze Tabelle zurück :?: :?: :?:

Nightfly 6. Apr 2004 11:03

Re: Jedes Feld in Tabelle vergleichen
 
dann könnte man ja beide tabellen Joinen und ein select distinct machen,oder?

Mauli 6. Apr 2004 11:26

Re: Jedes Feld in Tabelle vergleichen
 
Das raffe ich nicht :wall:

Hast du mal ne SQL dazu?

MrSpock 6. Apr 2004 11:40

Re: Jedes Feld in Tabelle vergleichen
 
Hallo Mauli,

ich glaube nicht, dass der vorgeschlagene Weg von Nightfly zum Erfolg führt. "Joinen" würde man ja eher zwei verschieden Tabellen, die über einen Schlüssel miteinander verbunden werden sollen. Vielleicht meinte Nightfly auch nicht "Joinen" sondern so etwas wie UNION. Aber auch das hilft nicht bei deiner Frage, da ein SELECT DISTINCT ja auch nur mehrfach gleiche Einträge in einem Feld zu einem zusammenfasst. Ich bin der Meinung, dass du das Problem nicht sinnvoll über ein SQL Statement erschlagen kannst. Ich würde in einer Schleife durch die darzustellende Tabelle laufen und dann prüfen, ob ein Satz mit denselben Schlüsselfeldern auch in der "alten Tabelle" existiert. Diese beiden Einträge kannst du dann Feld für Feld vergleichen (ggf. auch über eine Schleife über das Fields-Array). Nach erstmaliger Suche nach geänderten Feldern, kannst du anschließend z.B. beim AfterPost Event nur noch den aktuell geänderten Satz anschauen und prüfen, ob hier eine Änderung stattgefunden hat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 Uhr.

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