Dynamischer Daten Import / Export

datenbank

weil Einfach - produktiver ist
Mit der Freeware Version können bis zu 10.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.

THEMA: AutoID und Batchverarbeitung

AutoID und Batchverarbeitung 2 Monate 2 Wochen her #2856

  • Marko
  • Markos Avatar
  • Offline
  • Senior Member
  • Beiträge: 70
Hallo Forum. Auf der Write Seite möchte ich mit mehreren Batches Datensätzen in eine MS SQL Tabelle einfügen. Die vorhandenen Datensätze sollen in der Tabelle bestehen bleiben. Ab dem 2.ten Batch tritt jedoch das Problem auf das der Startwert der AutoID unbekannt, bzw. variabel ist und somit die 2.te Batch nicht mehr ausgeführt werden kann, da die ID/Primary key kollidiert. Es müsste vor dem 2.ten Batch die MAX(ID) +1 ermittelt werden und diese als neuer Startwert in der Folgebatch übergeben werden. Hat hierzu jemand bereits eine Lösung?

Gruß
Marko
Der Administrator hat öffentliche Schreibrechte deaktiviert.

AutoID und Batchverarbeitung 2 Monate 2 Wochen her #2857

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1102
Hallo Marko,

das einfachste wär es aus dem ID Feld ein Auto „Identity Increment“ Feld im SQL Server zu machen, dann würde der SQL Server die ID selbst vergeben. Es gibt natürlich etliche Gründe dass das so nicht durchgeführt werden kann :-)

In dem Fall kannst du dir relativ einfach einen eigene Auto Inkrement Mechanismus, der vor der Ausführung die Letzte ID ermittelt und dann ab diesem Wert weiter hochzählt, bauen.

Du benötigst dazu einmal einen SQL Heater mit einem „select max(ID) from t_Import“ um den aktuell maximalen Wert zu ermitteln. Wichtig dabei ist, dass „Ausführen bei“ auf „Start“ steht. So wird der SELECT einmalig vor der Ausführung an die SQL Server Datenbank geschickt. Damit der Wert anschließend weiterverarbeitet werden kann musst du hier noch angeben, dass ein Rückgabewert vorhanden ist und dieser soll in einem FlowHeater Parameter gespeichert werden.

Mit diesem Parameter „ID“ (der Name des Parameters ist frei wählbar) kannst du dann den Autozähler problemlos abbilden. Du benötigst einmal einen „Get Parameter Heater“ um den aktuellen Wert des Parameters in die Definition zu laden. Anschließend wird mit dem „Addition Heater“ auf diesen Wert eins addiert. Zum Schluss muss der aktuelle Wert dann wieder dem FlowHeater Parameter „ID“ mittels des „Set Parameter Heater“ zugewiesen werden.

Im Anhang findest du ein kleines Beispiel dazu.



Dateianhang:

Dateiname: autoid-mit...wert.zip
Dateigröße:2 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.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

AutoID und Batchverarbeitung 2 Monate 2 Wochen her #2861

  • Marko
  • Markos Avatar
  • Offline
  • Senior Member
  • Beiträge: 70
Super! Vielen Dank für die Lösungsmöglichkeiten.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.079 Sekunden