Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datensätze duplizieren / kopieren (https://www.delphipraxis.net/59698-datensaetze-duplizieren-kopieren.html)

RWarnecke 27. Dez 2005 14:25

Datenbank: Interbase • Version: 6.0 • Zugriff über: Interbase Komponenten von Delphi 6

Datensätze duplizieren / kopieren
 
Hallo,

folgendes Problem. Ich habe eine bestimmte Liste, die mir in einem DBGrid angezeigt wird. Diese Liste soll jetzt kopiert werden und in die gleiche Datenbanktabelle eingefügt werden, wie die Liste aus dem DBGrid. Beim kopieren soll ein Feld von dem Wert 0 auf 1 geändert werden. Wie würdet Ihr das Problem angehen ? :gruebel:

Die Liste wird mit einer einfachen Select-Abfrage erzeugt. Habt Ihr dazu ein paar Vorschläge, wie es am schnellsten und am effektivsten geht ?

Hansa 27. Dez 2005 15:18

Re: Datensätze duplizieren / kopieren
 
Zitat:

Zitat von RWarnecke
Diese Liste soll jetzt kopiert werden und in die gleiche Datenbanktabelle eingefügt werden, wie die Liste aus dem DBGrid.

Zusätzlich zu den vorhandenen Werten, oder soll nur die 1 bzw. 0 ersetzt werden ? :gruebel:

RWarnecke 27. Dez 2005 17:26

Re: Datensätze duplizieren / kopieren
 
Ich habe folgende Tabelle mit Werten (dieses ist nur ein Beispiel) :

ID -> 758 (Autoinc)
Anzahl -> 5
Artikelnummer -> 10435
Referenz_ID -> 901005
Art -> 0

So, das ist jetzt nur eine Position in der Liste. Zu der Referenz_ID gibt es natürlich noch weitere Positionen. Art legt nur fest, ob es die Version 0 oder 1 ist. So ich habe jetzt eine Tabelle, wo über die Art 0 drinsteht. Jetzt möchte ich dem User die Möglichkeit geben, die Version 0 nach 1 zu kopieren. Ein Beispiel :

Ich habe bei der Referenz_ID 901005 Version 0 eine Liste mit 15 unterschiedlichen Artikeln. Jetzt möchte ich diese 15 unterschiedlichen Artikel kopieren, das dann die Kopie die Version 1 ist. Das heißt, es müssen die Felder Anzahl, Artikelnummer und Referenz_ID 1:1 kopiert werden. Beim Einfügen in die gleiche Tabelle, wird dann der Wert Art immer auf 1 gesetzt.

Ich hoffe ich habe mich etwas verständlicher ausgedrückt als im ersten Eintrag.

Hansa 27. Dez 2005 19:08

Re: Datensätze duplizieren / kopieren
 
Zitat:

Zitat von RWarnecke
Ich hoffe ich habe mich etwas verständlicher ausgedrückt als im ersten Eintrag.

Ne. :mrgreen:

Zumindest nicht als Antwort hierdrauf :
Zitat:

Zusätzlich zu den vorhandenen Werten, oder soll nur die 1 bzw. 0 ersetzt werden ?
Der neue Beitrag deutet auch eher zusätzlich auf Master-Detail hin. Und daß die IDs nicht einfach kopiert werden können (egal von wo wohin) dürfte wohl klar sein ? Mehr ist momentan aus meiner Glaskugel nicht herauszuholen. 8)

RWarnecke 27. Dez 2005 19:13

Re: Datensätze duplizieren / kopieren
 
Die Liste mit den Artikeln, die eine 0 haben, sollen erhalten bleiben und zusätzlich die gleichen Artikel eine 1 haben in der Spalte Art.

Hansa 27. Dez 2005 19:25

Re: Datensätze duplizieren / kopieren
 
Zitat:

Zitat von RWarnecke
...zusätzlich die gleichen Artikel eine 1 haben in der Spalte Art.

Also Tabelle bleibt wie sie ist. Hinzu kommen die Artikel mit der 1 ? Und die kriegen dann statt der 1 eine 0 und alles andere bleibt wie vorher ? Die sind dann doppelt und haben entweder 1 oder 0 ? Scheinst ja online zu sein. :mrgreen:

marabu 27. Dez 2005 19:30

Re: Datensätze duplizieren / kopieren
 
Hallo Rolf,

meinst du das hier?

SQL-Code:
INSERT INTO tabelle (Anzahl, ArtikelNummer, Art, ReferenzId)
  SELECT Anzahl, ArtikelNummer, 1, ReferenzId
  FROM tabelle
  WHERE ReferenzId = 901005
Grüße vom marabu

RWarnecke 27. Dez 2005 19:40

Re: Datensätze duplizieren / kopieren
 
@Hansa :

Zitat:

Zitat von Hansa
Also Tabelle bleibt wie sie ist. Hinzu kommen die Artikel mit der 1 ?

Ja, die gleichen Artikel.
Zitat:

Zitat von Hansa
Und die kriegen dann statt der 1 eine 0 und alles andere bleibt wie vorher ?

Ja.
Zitat:

Zitat von Hansa
Die sind dann doppelt und haben entweder 1 oder 0 ?

Ja

@marabu :

Dein SQL-Code funktioniert nicht ganz, da ich ja irgendwie die AutoInc-Funktion für die Spalte ID setzen muss.

Hansa 27. Dez 2005 19:45

Re: Datensätze duplizieren / kopieren
 
Wenn der Code vom Marabu so (fast) reichen würde, dann fehlt Dir bloß noch ein geeigneter Trigger und das wars ! W kommt die vorhandene ID denn überhaupt her ? AutoInc :gruebel:

RWarnecke 27. Dez 2005 19:50

Re: Datensätze duplizieren / kopieren
 
Das Feld ID wird durch einen Generator gefüllt.

Edit:
Es wird aber im Code nur der Wert des Generators abgefragt und dann in das Feld ID eingtragen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:28 Uhr.
Seite 1 von 2  1 2      

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