Dynamischer Daten Import / Export

datenbank

weil Einfach - produktiver ist
Mit der Freeware Version können bis zu 100.000 Datensätze verarbeitet werden!
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Willkommen im FlowHeater Support Forum!

Hier werden Fragen zum Umgang mit dem FlowHeater beantwortet.
  • Seite:
  • 1

THEMA: Parameter für Anzahl von Insert/Update

Parameter für Anzahl von Insert/Update 3 Monate 1 Woche her #3278

  • Harald Schwab
  • Harald Schwabs Avatar Autor
  • Offline
  • New Member
  • New Member
  • Beiträge: 6
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 oder Registrieren um der Konversation beizutreten.

Parameter für Anzahl von Insert/Update 3 Monate 1 Woche her #3279

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1248
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
public object DoWork()
{
	DatabaseAdapter adapter = (DatabaseAdapter)AdapterWrite;

	return adapter.RowsInserted;
}

Skript für aktualisierte Datensätze
public object DoWork()
{
	DatabaseAdapter adapter = (DatabaseAdapter)AdapterWrite;

	return adapter.RowsUpdated;
}

Dateianhang:

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

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

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.

Parameter für Anzahl von Insert/Update 3 Monate 1 Woche her #3280

  • Harald Schwab
  • Harald Schwabs Avatar Autor
  • Offline
  • New Member
  • New Member
  • Beiträge: 6
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.
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 oder Registrieren um der Konversation beizutreten.

Parameter für Anzahl von Insert/Update 3 Monate 1 Woche her #3281

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1248
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
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-updated-rows-2.zip
Dateigröße: 12 KB
Anhang:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

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.

Parameter für Anzahl von Insert/Update 3 Monate 1 Woche her #3282

  • Harald Schwab
  • Harald Schwabs Avatar Autor
  • Offline
  • New Member
  • New Member
  • Beiträge: 6
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 oder Registrieren um der Konversation beizutreten.

  • Seite:
  • 1
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.101 Sekunden