Delphi-PRAXiS
Seite 1 von 2  1 2      

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

RWarnecke 11. Mär 2010 14:21

Datenbank: Firebird • Version: 2.1 • Zugriff über: UniDAC

Mehrere Datensätze kopieren
 
Hallo zusammen,

ich habe eine Tabelle mit den Kundendaten mit den folgenden Feldern :
  • StammNr
  • Vorname
  • Name
  • u.s.w.
Das Feld StammNr zieht sich durch alle Tabellen. Somit ist jeder Datensatz in den anderen Tabellen an diese StammNr gebunden. Jetzt meine Frage, wie kann ich jetzt die bestehenden Datensätze zu einer StammNr auf eine neue StammNr, die ich vorher vergebe kopieren ?

daddy 11. Mär 2010 14:54

Re: Mehrere Datensätze kopieren
 
Beitrag bitte ignorieren, habe die Ausgangsfrage nicht genau gelesen und falsch verstanden (s.#3):

[In den verbunden Tabellen den Foreign Key der Stammnummer um den Zusatz "On Update Cascade" erweitern. Sobald die StammNr geändert wird, geschieht dann alles Notwendige automatisch innerhalb von Firebird.

Gruß Daddy]

Blup 11. Mär 2010 15:00

Re: Mehrere Datensätze kopieren
 
Die Nummer verändern oder die Datensätze kopieren sind wohl zwei paar Schuhe...

Man kann über die Systemtabellen alle Fremdschlüssel und die abhängigen Tabellen auslesen.
Aber diese automatisch mit Daten zu füllen ist so einfach nicht.
Nur mal angenommen es gibt eine Tabelle Rechnungen in der jede Rechnungsnummer eindeutig sein muss.
Hier ist fachliche Logik gefragt.

Welches Ziel soll damit eigentlich erreicht werden?

RWarnecke 11. Mär 2010 15:16

Re: Mehrere Datensätze kopieren
 
Ich versuche es anderst zu erklären. Ich habe insgesamt 30 Tabellen + 1 Tabelle mit Kundendatensätzen wie in Beitrag #1 geschrieben. Das einzigste Feld was eindeutig sein muss, ist die StammNr. Dieses Feld ist in allen 30 Tabellen vorhanden. In den Tabellen werden verschiedene Werte für Berechnungen gespeichert. Das ganze ergibt dann einen Gesamtbericht mit allen Berechnungen. Jetzt möchte ich die Werte für die Berechnungen kopieren und unter einer neuen StammNr abspeichern.
Als Ergebnis sollen dann zweimal die gleichen Werte für die Berechnungen unter zwei unterschiedlichen StammNr in der Datenbank gespeichert sein. So ungefähr wie eine kleine Versionsverwaltung der Werte.

DeddyH 11. Mär 2010 15:56

Re: Mehrere Datensätze kopieren
 
Spontan würde ich sagen, schreib Dir eine SP, der Du die alte und die neue Stammnummer übergibst. Innerhalb dieser kannst Du ja dann aus allen betroffenen Tabellen die Daten kopieren. Welche das sind, kannst Du entweder hartcoden oder über die Systemtabellen auslesen, sofern es sich um einen FK handelt.

RWarnecke 11. Mär 2010 16:25

Re: Mehrere Datensätze kopieren
 
Zitat:

Zitat von DeddyH
Spontan würde ich sagen, schreib Dir eine SP, der Du die alte und die neue Stammnummer übergibst. Innerhalb dieser kannst Du ja dann aus allen betroffenen Tabellen die Daten kopieren. Welche das sind, kannst Du entweder hartcoden oder über die Systemtabellen auslesen, sofern es sich um einen FK handelt.

Ich nehme mal an, dass Du mit FK den Foreign Key meinst. Den habe ich in keiner Tabelle definiert. Brauche ich den denn unbedingt für das kopieren ?

RWarnecke 11. Mär 2010 16:25

Re: Mehrere Datensätze kopieren
 
Zitat:

Zitat von DeddyH
Spontan würde ich sagen, schreib Dir eine SP, der Du die alte und die neue Stammnummer übergibst. Innerhalb dieser kannst Du ja dann aus allen betroffenen Tabellen die Daten kopieren. Welche das sind, kannst Du entweder hartcoden oder über die Systemtabellen auslesen, sofern es sich um einen FK handelt.

Ich nehme mal an, dass Du mit FK den Foreign Key meinst. Den habe ich in keiner Tabelle definiert. Brauche ich den denn unbedingt für das kopieren ?

DeddyH 11. Mär 2010 16:39

Re: Mehrere Datensätze kopieren
 
Für das Kopieren nicht, er wäre nur nützlich gewesen, wenn man die Relationen über die Systemtabellen auslesen wollte.

RWarnecke 11. Mär 2010 16:53

Re: Mehrere Datensätze kopieren
 
Hast Du ein paar Links parat zu FK und dem Auslesen von Systemtabellen innerhalb einer SP ? Wenn nicht, ist auch nicht schlimm suche ich nachher über Google.

hoika 11. Mär 2010 16:54

Re: Mehrere Datensätze kopieren
 
Hallo,

du musst doch eine "LoadDataFromTableXXX" / "InsertDataIntoTableXXX" im Programm haben.
Dann lade dir die Daten der alten StammNr und speichere sie unter der neuen Nummer ab.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:06 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