Autor Beitrag
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6386
Erhaltene Danke: 146

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 02.11.05 15:59 
Ich habe in einem DataSet zwei Tabellen definiert.
Die erste beinhaltet auc mehrere gleiche Einträge. In der zweiten gehe ich dann die erste durch und fasse die Mehrfach-Einträge zu einem zusammen.
Dann bearbeite ich die zweite Tabelle (Ein logische Schalter wird gesetzt). Diese Veränderungen sollen jetzt in die erste Tabelle übertragen werden. Auch die zusammengefassten Einträge sollen auf die neue Einstellung gesetzt werden. Soviel zur Vorgschichte.

Das Problem:
Um die Einstellung zu übernehmen, vergleiche ich die Einträge in einer zweifach geschachtelten Schleife:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
  for drVerwaltung in tblProzesseWork.Rows do
  begin
    for drHauptliste in tblProzesse.Rows do
    begin
      if (drVerwaltung.Item['Prozess'] = drHauptliste.Item['Prozess']) and
         (drVerwaltung.Item['FVI_FileName'].ToString = drHauptliste.Item['FVI_FileName'].ToString) and
         (drVerwaltung.Item['Pruefen'] <> drHauptliste.Item['Pruefen']) then
      begin
        drHauptliste.Item['Pruefen'] := drVerwaltung.Item['Pruefen'];
      end;
    end;
  end;

Dieser Vergleich funktioniert aber nicht:
ausblenden Delphi-Quelltext
1:
  (drVerwaltung.Item['FVI_FileName'].ToString = drHauptliste.Item['FVI_FileName'].ToString)					

Es ist sichergestellt, dass beide Werte inhaltlich gleich sind.
Bei den "Mehrfachen" stellt dieser Vergleich aber nur einmal fest, dass es gleich ist. Also wird die Einstellung nur einmal übernommen, statt z.B. 4 mal.

Ich bin schon mit dem Debugger durchgelaufen und hab mir die Inhalte anzeigen lassen. Die Anzeige zeigt mir alles so an, wie es sein soll und der Programmablauf ist auch korrekt. Nur der Vergleich ergibt was anderes, als die Anzeige.

Ich vermute, dass dort Referenzen und nicht Inhalte verglichen werden. Aber wie verhindere ich das? (Wenn es denn wirklich das Problem ist)