Skip to main content
Weil einfach - produktiver ist

Der Daten Spezialist

Konvertieren Sie die Daten mühelos zwischen verschiedenen Formaten ohne Programmierkenntnisse dank Visual Designer. Effizient und super einfach.
Flowheater Download

Parameter für Anzahl von Insert/Update

Mehr
6 Jahre 7 Monate her #3278 von Harald Schwab
Parameter für Anzahl von Insert/Update wurde erstellt von Harald Schwab
Hallo, gibt es die Möglichkeit die Anzahl der "Insert" bzw. "Update" Vorgänge (am Ende) auszulesen und zB dem SQL-Heater (Ausführen bei Ende) zu Übergeben? zB in Form von (Programmseitigen) Parametern?
FlowHeater Version 4.0.8.2
Danke

MfG
Harald Schwab

Bitte Anmelden um der Konversation beizutreten.

Mehr
6 Jahre 7 Monate her #3279 von FlowHeater-Team
FlowHeater-Team antwortete auf Parameter für Anzahl von Insert/Update
Hallo Herr Schwab,

um die Anzahl der eingefügten bzw. aktualisierten Datensätze abzufragen benötigen sie den .NET Script Heater zusammen mit u.s. Skript.

Die Rückgabe leiten Sie dann in einen Set Parameter Heater und können Sie am Ende der Definition einen SQL Heater mit diesen Parametern bestücken.

Im Anhang finden Sie ein kleines Beispiel dazu.

Skript für angefügte Datensätze
Code:
public object DoWork() { DatabaseAdapter adapter = (DatabaseAdapter)AdapterWrite; return adapter.RowsInserted; }

Skript für aktualisierte Datensätze
Code:
public object DoWork() { DatabaseAdapter adapter = (DatabaseAdapter)AdapterWrite; return adapter.RowsUpdated; }

Dateianhang:

Dateiname: inserted-u...rows.zip
Dateigröße:12 KB

gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Anhänge:

Bitte Anmelden um der Konversation beizutreten.

Mehr
6 Jahre 7 Monate her #3280 von Harald Schwab
Harald Schwab antwortete auf Parameter für Anzahl von Insert/Update
Hallo, vielen Dank.
Ich habe es jetzt Ausprobiert, bekomme jedoch leider nicht die korrekte Anzahl zurückgegeben.
Folgendes Beispiel:
- Tatsächliche Updates = 5, Tatsächliche Inserts = 0 => RowsUpdated = 4, RowsInserted = 0
- Tatsächliche Updates = 0, Tatsächliche Inserts = 5 => RowsUpdated = 0, RowsInserted = 4
- Tatsächliche Updates = 5, Tatsächliche Inserts = 5 => RowsUpdated = 5, RowsInserted = 4

Ist einer der beiden Vorgänge = 0 ergibt der andere also immer N - 1
Sind beide > 0 ergibt Updates = N, Inserts aber M - 1

Ich habe es mittels separaten .NET Heatern probiert (wie gezeigt, jeweils in einem eigenen .NET Heater), als auch mit einem wo ich die Ergebnisse in einem String zusammengefügt habe und dann mittels Split-Heater an die Set-Heater verteilt habe.
Code:
public object DoWork() { DatabaseAdapter adapter = (DatabaseAdapter)AdapterWrite; int update = adapter.RowsUpdated; int insert = adapter.RowsInserted; String ret = String.Format("{0}#{1}", update, insert); return ret; }

Ich habe sowohl bei "Ausführen bei 'Pro Zeile/Satz'" als auch "Ausführen bei 'Standard'" probiert.
Habe ich etwas übersehen?

Danke

MfG
Harald Schwab

Bitte Anmelden um der Konversation beizutreten.

Mehr
6 Jahre 7 Monate her #3281 von FlowHeater-Team
FlowHeater-Team antwortete auf Parameter für Anzahl von Insert/Update
Hallo Herr Schwab,

das war ein Denkfehler von mir, ich wollte es etwas einfacher machen :dry: Das Problem ist, dass so die Parameter bei jedem Datensatz gesetzt werden noch bevor der Adapter der Write Seite das eigentlich Kommando ausgeführt hat und somit auch der Zähler noch nicht hochgesetzt werden konnte. Demnach ist immer bei der zuletzt ausgeführten Aktion (INSERT oder UPDATE) der Zähler um eins zu niedrig.

Ich habe das Beispiel angepasst (siehe Anhang) so dass die Parameter über den .NET Script Heater am Ende der Verarbeitung gesetzt werden, jetzt sollte es passen. Achtung: „Ausführen bei“ muss auf „Ende“ gesetzt werden!

Hier das neue C# Skript
Code:
public object DoWork() { DatabaseAdapter adapter = (DatabaseAdapter)AdapterWrite; // Parameter INSERTS setzen Parameter["INSERTS"].Value = adapter.RowsInserted; // Parameter UPDATES setzen Parameter["UPDATES"].Value = adapter.RowsUpdated; // Rückgabe wird bei ausführen am Ende nicht benötigt! return null; }

PS: Evtl. wäre es auch eine Möglichkeit über das Batch Modul mit der Option /LogFile logfilename die Ausgaben zu loggen und um Anschluss eine zweite Definition zu starten die dann diese Ausgaben verarbeitet?

Dateianhang:

Dateiname: inserted-u...ws-2.zip
Dateigröße:12 KB

gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Anhänge:

Bitte Anmelden um der Konversation beizutreten.

Mehr
6 Jahre 7 Monate her #3282 von Harald Schwab
Harald Schwab antwortete auf Parameter für Anzahl von Insert/Update
Hallo, super vielen Dank. Diese Variante scheint Perfekt zu funktionieren.
Das Ganze über die Ausgabe des Batch-Moduls auszulesen hatte ich schon im Hinterkopf, aber so ist es doch um einiges einfacher und vor allem auch aus dem Designer heraus möglich. :)

Danke

MfG
Harald Schwab

Bitte Anmelden um der Konversation beizutreten.

Ladezeit der Seite: 0.408 Sekunden

FlowHeater - Der Daten Spezialist

Effiziente Datenintegration und Transformation mit FlowHeater - Ihre Lösung für nahtlosen Datentransfer.

Rechtliches

Support & Kontakt

Kontaktinformation

Telefon:
0951 / 99339792

E-Mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.


Copyright © 2009-2024 by FlowHeater GmbH. Alle Rechte vorbehalten.