- Beiträge: 92
AutoID und Batchverarbeitung
- Marko
- Autor
- Offline
- Benutzer
Weniger
Mehr
8 Jahre 2 Monate her #2856
von Marko
AutoID und Batchverarbeitung wurde erstellt von Marko
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
Gruß
Marko
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
8 Jahre 2 Monate her #2857
von FlowHeater-Team
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.
FlowHeater-Team antwortete auf AutoID und Batchverarbeitung
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.
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.
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 oder Registrieren um der Konversation beizutreten.
- Marko
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 92
8 Jahre 1 Monat her #2861
von Marko
Marko antwortete auf AutoID und Batchverarbeitung
Super! Vielen Dank für die Lösungsmöglichkeiten.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.270 Sekunden