Entwickler-Ecke

Datenbanken - 2 mal Paradox zusammenfügen


The Re@l - Di 01.04.03 11:35
Titel: 2 mal Paradox zusammenfügen
Hallo
Ich habe folgendes Problem
Ich habe 2 gleiche Paradox DBs mit verschiedenen Einträgen
Die ich jetzt in der Table1 zusammen fügen möchte doch als
antwort bekomm ich immer wieder INDEXFEHLER :cry:
Was is denn daran Falsch


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.Button4Click(Sender: TObject); 
var 
i: Integer; 
begin 
If OpenDialog1.Execute then Begin 
Table2.Active := false; 
Table2.TableName := OpenDialog1.FileName ; 
Table2.Active := True; 
for i := 0 to Table2.FieldCount - 1 do begin 
Table1.Append; 
Table1.Fields.Fields[i].AsString := Table2.Fields.Fields[i].AsString; 
Table1.Post; 
  end; 
  end; 
  end;


LCS - Di 01.04.03 11:43

Hi
das bedeutet, dass du versuchst aus der Tabelle 1 Sätze mit einem Primärschlüssel einzufügen, der in Tabelle 2 bereits existiert. Das lässt sich leicht prüfen, indem du die Tabelle 2 mal komplett leerst. Wenn dann alles klappt liegts genau daran.
Das ist leider immer ein Problem wenn's drum geht zwei Tabellen zusammenzuführen.

Gruss Lothar


The Re@l - Di 01.04.03 11:47

Misst

Du hast recht es wird nur ein eintrag Hinzugefügt bei einer leeren DB und auch nur das Feld mit dem PrimärKey. Kennt jemand ne andere lösung.

Vielen Dank im Voraus


LCS - Di 01.04.03 11:54

Hmm,
leider net so einfach. Wenn der Primärschlüssel numerisch ist und sonst keine Rolle spielt kannst du einfach vor dem Einfügen den letzten verwendeten Schlüssel in Tabelle 2 bestimmen und beim Einfügen von dieser Nummer an den Schlüssel neu vergeben.
Die zweite Möglichkeit wäre vor dem Einfügen zu prüfen ob der Schlüssel schon vorhanden ist und wenn ja, entweder den Satz mit einem neuen Schlüssel zu schreiben oder zur Bearbeitung in der Ursprungstabelle zu lassen. Leider erhöht sich damit der Zeitbedarf ganz erheblich.

Gruss Lothar