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: Zeitstempel bei Update/Anfügen

Zeitstempel bei Update/Anfügen 4 Monate 1 Woche her #3260

  • Toni Wilhelm
  • Toni Wilhelms Avatar Autor
  • Offline
  • New Member
  • New Member
  • Beiträge: 2
Hallo!
Ich bin seit kurzem mit Flowheater in Kontakt gekommen und würde gern erfragen, ob folgender Anwendungsfall damit abzubilden ist:

Ausgangssituation:
TXT-Datei wird in eine SQL-Datenbank (SQL Server 2012) importiert mit insert+update von Datensätzen

Kann man nun einen Zeitstempel auf der SQL-Seite in einem Feld erzeugen, der entweder das Anlagedatum bei einem neuen Datensatz oder das Änderungsdatum bei einem Update enthält? In beiden Fällen müsste jeweils das aktuelle Datum (Now-Funktion?) geschrieben werden, wenn in der SQL-Tabelle der Datensatz bisher nicht vorhanden war oder sich Werte geändert haben. Insbesondere bei Updates wäre dann noch interessant zu wissen, ob man die betreffenden Felder explizit prüfen muss oder es eine generelle Prüfmöglichkeit gibt?

Dank vorab für die Hilfe!

Toni

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Zeitstempel bei Update/Anfügen 4 Monate 1 Woche her #3261

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1248
Hallo Herr Wilhelm,

ich vermute jetzt mal der Zeitstempel soll bei Import und Update jeweils in ein anderes Feld geschrieben werden?

Der einfachste Weg das zu tun wäre es über zwei separate FlowHeater Definitionen auszuführen, so führt der FlowHeater die benötigten Prüfungen automatisch durch.

Zuerst führen Sie die nur UPDATE Definition aus. Hier müssen Sie im SQLServer Adapter lediglich die Option „Daten aktualisieren (Update)“ aktivieren. So prüft der SQLServer Adapter anhand des angegebene Primary Keys ob der betroffene Datensatz existiert und führt nur in diesem Fall ein UPDATE aus.

Anschließend führen Sie die nur INSERT Definition aus. Hier müssen Sie die Optionen „Daten anfügen (Insert)“ und „Vorhandene Datensätze ignorieren“ aktivieren. So prüft der SQLServer Adapter anhand des angegeben Primary Key ob der anliegende Datensatz schon existiert und führt nur einen INSERT aus falls nicht.

Hinweis: Über das Batch Modul können die beiden Definitionen automatisert nacheinander ausgehführt werden!

Der etwas schwierigere Weg ist über eine Definition. Hier müssen Sie in der Definition selbst prüfen ob der gerade anliegende CSV Satz in der Datenbank bereits vorhanden ist. Die Prüfung können Sie über den Lookup Heater oder aber den SQL Heater durchführen. Falls Sie das benötigen bitte die Zeitstempel Felder sowie die/den Primary Key etwas genauer beschreiben dann kann ich Ihnen hierfür ein kleines Beispiel erstellen.

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.
Letzte Änderung: von FlowHeater-Team.

Zeitstempel bei Update/Anfügen 4 Monate 1 Woche her #3262

  • Toni Wilhelm
  • Toni Wilhelms Avatar Autor
  • Offline
  • New Member
  • New Member
  • Beiträge: 2
Hallo,
also mir würde ein Feld genügen, in dem quasi der Datenstand des Datensatzes festgehalten ist - d.h. entweder wann er erstellt oder wann er geändert wurde.

Es muss also ein bisher noch nicht vorhandenes Feld [letzte_Änderung] mit dem aktuellen Datum gefüllt werden und es existieren 4 Primary Keys (Firma, Schlüssel, Ausprägung, Merkm).

Ich würde die Variante per Definition bevorzugen - können Sie mir hierzu ein kleines Beispiel geben.
Danke nochmals!

T.Wilhelm

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Zeitstempel bei Update/Anfügen 4 Monate 1 Woche her #3264

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1248
Hallo Herr Wilhelm,

das ist dann noch einfacher :) Das Feld für das Datum müssten Sie vorher allerdings von Hand anlegen, das unterstützt der FlowHeater noch nicht, ist aber in Planung.

Dann müssen Sie im SQLServer Adapter die Optionen „Daten anfügen (Insert)“ und „Daten aktualisieren (Update)“ aktivieren, siehe Screenshot.

Wenn beim Auslesen der Tabelle die Primary Keys erkannt wurden sollte im Designer für diese Felder ein Schlüsselsymbol angezeigt werden.
Zu diesen Feldern müssen Sie von der READ Seite eine Verbindung herstellen. Anschließend verbinden Sie noch die Felder die Sie einfügen bzw. aktualisieren möchten sowie eine Verbindung vom Now Heater mit dem oben hinzufügten Datums bzw. DateTime Feld.

Der FlowHeater entscheidet so anhand der Primary Key Informationen ob ein INSERT oder eine UPDATE ausgeführt werden soll. Das Feld mit dem Änderungszeitstempel wird so immer auf den aktuellen Wert gesetzt.

Im Anhang habe ich Ihnen ein kleines Beispiel erstellt. Das Beispiel verwendet aber eine SQLite Datenbank und soll lediglich zur Veranschaulichung dienen.

SQL Server Import/Update Einstellungen


Dateianhang:

Dateiname: csv-import-update-sql-server.zip
Dateigröße: 3 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.
  • Seite:
  • 1
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.288 Sekunden