Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Feldwerte kopieren (https://www.delphipraxis.net/82726-feldwerte-kopieren.html)

needatip 18. Dez 2006 20:34

Datenbank: SQL Server 2000 • Zugriff über: ADO

Feldwerte kopieren
 
Hallo,
wie kann man bestimmte Felder eines Datensatzes einer Tabelle1 mit den Feldwerten eines Datensatzes einer anderen Tabelle2 ersetzen?
z.B. Tabelle Kunden: Name,Strasse,Plz,Ort,Land,Tel,Fax
Tabelle Adressen: Name,Strasse,Ort
Jetzt soll ein einzelner aktueller Datensatz der Tabelle Kunden mit den Feldwerten des aktuellen Datensatzes der Tabelle Adressen
geändert bzw. überschrieben werden.

Natürlich kann ich es so machen:
Delphi-Quellcode:
Kunden.FieldByName('Name').AsString := Adressen.FieldByName('Name').AsString;
Kunden.FieldByName('Strasse').AsString := Adressen.FieldByName('Strasse').AsString;
Kunden.FieldByName('Ort').AsString := Adressen.FieldByName('Ort').AsString;
Da dies aber nur ein Beispiel ist und ich ca. 40 Felder kopieren muss, frage ich ob es nicht eine elegantere Lösung gibt.

Vielleicht mit SQL
SQL-Code:
UPDATE Kunden
SET (Kunden.Feldliste) = (Adressen.Feldliste)
WHERE Kunden.Nr = Adressen.Nr
o. so ähnlich?

Hansa 18. Dez 2006 20:52

Re: Feldwerte kopieren
 
Das ist nicht viel, aber eher Sache der Zugriffskomponenten. Würde da jedenfalls keine Zusatztabelle nehmen. Bei IB/FB und FIBPlus siehts z.B. so aus :

Delphi-Quellcode:
procedure CloneCurRecord (..Ignorefields : array of ...)
Herrje, ADO und Micky-SQL ? :shock: Da muss ich konkret zumindest passen.

needatip 18. Dez 2006 21:04

Re: Feldwerte kopieren
 
Das hilft mir nicht wirklich weiter.
Gibt es nicht soetwas wie 'Fieldmapping' mit SQL, so dass man die Felder vorher zuordnen kann?

mkinzler 18. Dez 2006 21:07

Re: Feldwerte kopieren
 
SQL-Code:
select <Feldliste> from <Tabelle1> into ...

needatip 18. Dez 2006 21:12

Re: Feldwerte kopieren
 
Wird mit SELECT INTO nicht ein neuer Datensatz angefügt?
Das möchte ich aber vermeiden. Die Daten sollen in den aktuellen Datensatz eingefügt werden.

mkinzler 18. Dez 2006 21:16

Re: Feldwerte kopieren
 
Zitat:

Wird mit SELECT INTO nicht ein neuer Datensatz angefügt?
Ja.

Hansa 18. Dez 2006 23:02

Re: Feldwerte kopieren
 
Zitat:

Zitat von needatip
...Die Daten sollen in den aktuellen Datensatz eingefügt werden.

Ja dann ist die Frage doch schon von Dir selber beantwortet. :shock: Entweder feldweise oder per Cloning (Teil)-Datensätze herumschieben. Ob MS-SQL das kann ? KA.

P.S.: SELECT INTO betrifft übrigens das :
Zitat:

Zitat von Hansa
Würde da jedenfalls keine Zusatztabelle nehmen.


needatip 19. Dez 2006 07:20

Re: Feldwerte kopieren
 
OK, dann bleibt mir nichts anderes übrig als feldweise zu übertragen !
Trotzdem vielen Dank.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz