Entwickler-Ecke

Datenbanken - Tabelle in eine andere verschieben


diego - Do 19.09.02 15:59
Titel: Tabelle in eine andere verschieben
hi

mal wieder eine frage von mir :wink:

ich habe jetzt eine tabelle in der ein paar hundert adressen drin sind. nun soll vor die erste adresse eine 1, vor die nächste ne 2 und so weiter. das ergebniss soll dan in ner neuen tabelle gespeichert werden. ich hab mir gedacht ich les mir durch eine schleifen die tabelle zeile für zeile aus und schreib sie mit der nummer (1,2,...) in eine neue tabelle. nur wie kann ich das machen ???


majolo - Do 19.09.02 16:22

Hi,

also Daten von einer Tabelle in eine zweite Kopieren geht mit SQL.Die neue muss genauso aufgebaut sein wie die alte.
Der SQL-Code lautet dafür:

Quelltext
1:
INSERT INTO ALTEDB SELECT * FROM NEUEDB;                    

Möchtest du die Datensatz no in einer eigenen Spalte?Odernicht?
Wenn ja kann das beim erstellen der Datenbank berücksichtigt werden.
Ich hoffe ich konnte ein bisschen helfen.
Gruss
majolo


MrSpock - Do 19.09.02 20:14

Hallo diego,

eine Möglichkeit wäre eine BatchMove Komponente. Die Eigenschaft Mappings erlaubt dann die Zuordnung der Felder.

Alternativ dazu ist natürlich eine Schleife möglich:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
Table1.First;
nextNr := 1;
while Not Table1.EOF do
begin
  Table2.Append;
  Table2.FieldByName('ID').Value := nextNr;
  Table2.FieldByName('Feld1').Value := Table1.FieldByName('Feld1').Value;
  ...
  Table2.Post;
  Table1.Next;
  Inc(nextNr);
end;


Wenn es sehr viele Felder sind kannst du in einer inneren Schleife auch die Fields-Arrays durchlaufen.


diego - Fr 20.09.02 08:27

okay danke es hat funktioniert :D