Einzelnen Beitrag anzeigen

jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#26

AW: Datensätze schnell einfügen bzw. ersetzen

  Alt 25. Mai 2014, 16:57
st erst zu einem Drittel fertig. Da muss wohl eine Tabellenlösung her.
@jobo: hast Du da ein etwas konkreteres Beispiel für mich?
"etwas konkreter" ist ja dehnbar.

also hier mein Vorschlag von oben:
Zitat:
* da empfiehlt sich ggF eine extra Importtabelle fürs Laden (alles rein, ohne Abgleich)

* im 2. Schritt dann die erwähnten Merges / Update or Insert Statements und zwar nicht Satz für Satz, sondern die komplette Zwischentabelle in einem Rutsch. Abgleich über fachliche Schlüsselfelder, ggf mehrere
konkreter:
1. CSV Import über externes File wie z.B. hier nach Tabelle 'Neudat<en':
http://www.delphipraxis.net/180125-w...-firebird.html

2. korreliertes Update des Bestandes
über deine 3(?) Parameter
Code:
UPDATE Bestandsdaten
   SET <column> = N.<NewColumn>
            ..
   FROM bestandsdaten AS B INNER JOIN Neudaten As N
   On B.NR = N.NR ...
3. Delete der NeuDaten, die bereits für Update verwendet wurden.
Statement (vor allem Join) wie oben nur eben delete

4. Insert der Restdaten
Code:
insert into Bestandsdaten <columns>
select <columns> from Neudaten
5. Leeren der restlichen Neudaten
Code:
delete / truncate Neudaten
So mal als Idee. Kann man ausbauen oder abändern, wenn man mehr Kontrolle braucht.
z.B. "sind meine 3 Parameter eindeutig?", ...
Wenn man beim Bestand unsicher ist, ob die Kriterien hinreichend sind, kann man z.B. auf das Delete (Step3) verzichten, das Insert komplexer abgleichen und damit die gesamte Tabelle "Neudaten" für Prüfungen bewahren.
Ist man nicht sicher, dass die Eindeutigkeit der Neudaten über die gewünschten Kriterien gegeben ist, kann nach dem Import erstmal Prüfstatements drüberlaufen lassen.
Gruß, Jo
  Mit Zitat antworten Zitat