Autor Beitrag
Robby
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31

Winxp
Delphi 4
BeitragVerfasst: Di 08.11.05 19:56 
Hallo zusammen,
ich möchte 2 Table Datenbänke vergleichen, die gleiche Felder und den gleichen Index haben. Sollte beim vergleichen ein Feld einen anderen wert haben so soll er den wert der 1. Table Datenbank annehmen.
Hier habe ich meinen Code

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
while not table3.Eof do
   begin  
   table2.append;
   for cop := 0 to Table3.fieldcount -1 do
   try table2.fields[i].assign(table3.fields[i]) except end;
  table2.post;
  table3.next;
end;


Der aber verändert nichts

Ich hoffe dass jemand einen Tipp für mich hat.
Mit freundlichen Grüßen
Robby

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt.

_________________
Es gibt keine dummen Fragen,
nur dumme Antworten.
noidic
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 851

Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
BeitragVerfasst: Mi 09.11.05 09:32 
Anscheinend willst du Tabellen abgleichen, keine Datenbanken. Das ist schon mal ein grosser Unterschied.

Was dein Code macht, ist für jede Zeile in Table3 eine neue Zeile in Table2 anzuhängen. Ist das so gewollt? Nach deiner Beschreibung ja eher nicht.

Ausserdem kannst du Feldwerte nicht mittels Assign von einem Feld ins andere übertragen. Warscheinlich gibts da sogar eine Zugriffsverletzung, die du aber mit dem try--except - Konstrukt gänzlich verschluckst ( böse, wenn Exceptions kommen, sollte man das auch erfahren ).

Die Zuweisung von Feldwerten kannst du mit

ausblenden Delphi-Quelltext
1:
Table2.Fields[I].value := Table3.Fields[I].value;					


machen.

Außerdem solltest du dann auch I in der Schleife hochzählen und nicht cop.

_________________
Bravery calls my name in the sound of the wind in the night...
Lake
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 78


D6 prof., Delphi 10.2 Tokyo
BeitragVerfasst: Mi 09.11.05 10:35 
Probiere es mal mit Batchmove.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
with Batchmove1 do
begin
 Source      := Table3 ;
 Destination := Table2;
 Mode        := batAppendUpdate;
 execute;
end;
Robby Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31

Winxp
Delphi 4
BeitragVerfasst: Mi 09.11.05 18:59 
Danke dir für den Tipp mit Batchmove es funzelt Prima. :D :D :D :D
Robby

_________________
Es gibt keine dummen Fragen,
nur dumme Antworten.