[gelöst] Kopieren aller Datensätze in andere Tabelle

12. September 2009 11:34

Hi,

ich habe eine Tabelle "Tabelle 1" mit ca. 25 Spalten. Nun habe ich eine zweite Tabelle "Tabelle 2", die exakt genau den gleichen Aufbau hat. Halt nur ne andere ID und nen anderen Namen. Nun möchte ich in C/SIDE Datensätze von einer Tabelle in die andere verschieben. Muss ich da wirklich JEDE Spalte einzelnd in C/Side zuweisen??? Oder gibts da nich nen besseren trick? In .NET würd ich das mit Reflections lösen...
Zuletzt geändert von Dosihris am 12. September 2009 13:08, insgesamt 1-mal geändert.

Re: Kopieren aller Datensätze in andere Tabelle

12. September 2009 13:01

Dosihris hat geschrieben:Muss ich da wirklich JEDE Spalte einzelnd in C/Side zuweisen??? Oder gibts da nich nen besseren trick?

Vorausgesetzt, die Felder haben auch die gleichen IDs, bietet sich hierfür der Befehl TRANSFERFIELDS an. Er ist u.a. zuständig für das Übertragen einer VK-Zeile in eine Lieferzeile - das wird auch in einem Wisch gemacht.

Re: Kopieren aller Datensätze in andere Tabelle

12. September 2009 13:08

Cool, danke Natalie... Gerade ca. 50 Zeilen Code gespart... :-)

Re: [gelöst] Kopieren aller Datensätze in andere Tabelle

14. September 2009 09:07

Natalie hat geschrieben:Vorausgesetzt, die Felder haben auch die gleichen IDs, bietet sich hierfür der Befehl TRANSFERFIELDS an.


Kleine Ergänzung:
TRANSFERFIELDS überträgt alle identischen Felder, es muß die ID und der der Datentyp identisch sein.
Es dürfen in den Tabellen (Ziel-/ Quelle) auch weitere Felder vorhanden sein, diese werden naturlich nicht mit Kopiert.

Re: [gelöst] Kopieren aller Datensätze in andere Tabelle

14. September 2009 13:30

Ja ich dachte erst, der Befehl funktioniert doch nicht, aber es war so, dass in der Zieltabelle schon Validation-Code vorhanden war und deswegen nciht alle Felder übernommen wurden. Aber nun gehts.

Re: [gelöst] Kopieren aller Datensätze in andere Tabelle

14. September 2009 13:43

Noch ein kleiner Hinweis. TRANSFERFIELDS hat noch einen zweiten Parameter der undankbarerweise oft in Vergessenheit gerät, aber sehr sehr nützlich ist.

TRANSFERFIELDS(FromRecord,[InitPrimaryKeyFields])

Der zweite Parameter "InitPrimaryKeyFields" ist standardmäßig, also wenn nicht angegeben, TRUE und bedeutet soviel wie, dass auch die Schlüsselfelder kopiert werden. Das will man aber nicht immer, vor allem wenn es sich zB um laufende Nr. handelt.

Wie auch immer... wollts nur mal gesagt haben.

Christoph