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: CSV-Import zu mehreren SQL-Tables

CSV-Import zu mehreren SQL-Tables 3 Jahre 8 Monate her #1263

  • Frank
  • Franks Avatar
  • Offline
  • New Member
  • Beiträge: 8
Hallo, ist es möglich auf dem SQL-Write Adapter die gleiche DB-Table mehrmals zu verbinden- oder muss ich wie hier dann für jede CSV-Spalte welche ich mit der "Quantity-ID" verbinden möchte eine separate .fhd-Datei im Flowheater anfertigen.

Hoffe ich habe mich verständlich ausgedrückt?
Es stehen in den 4 Spalten - Werte ( Write in "Value"
1. Gelieferte Energie
2. Wirkleistung 1 ... bis Wirkleistung 3
5. Gesamtwirkleistung

Und in Quantity muss jeweils der Wert von
1. 129
2. 130 ...133
5. 140
Anhang:
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: CSV-Import zu mehreren SQL-Tables 3 Jahre 8 Monate her #1264

  • StefanN
  • StefanNs Avatar
  • Offline
  • New Member
  • Beiträge: 7
Ich habe eine ähnliche bzw. sogar erweiterte Anforderung:
Auf der Reader-Seite habe ich bereits einen Prototyp .NET DataTable Adapter für unser bisheriges Format geschrieben (nach 3 Stunden testfähig :woohoo: , dank einfacher Schnittstelle und gutem Beispiel von FlowHeater).

Die Quelle hat Auftragsdaten, zwei Adressen (Abhol- und Lieferadresse) und sogenannte Öffnungszeiten, die wie oben beschrieben in mehrere Ziel "Zeilen" (Datensätze) gespeichert werden sollen.

Die Quelldaten sind alle in einer ASCII-Zeile hintereinander abgelegt.
Mappen der Daten (Verbinden der Read-Seite mit der Write-Seite)in einen SQLServer Adapter:
- Auftragsdaten in die "Auftragstabelle" (immer ein Satz)
- Abholadresse in die "Lokationstabelle" 1.Satz
- Lieferadresse in die "Lokationstabelle" 2.Satz
- Öffnungszeiten:
Beispiel:
Mo 8.00-12.00 und 13.00-17.00 Uhr (1. Satz in der Öffnungszeitentabelle)
Di 8.30-12.00 und 13.00-17.30 Uhr (2. Satz in der Öffnungszeitentabelle)
Mi 7.00-12.00 (3. Satz in der Öffnungszeitentabelle)

Gibt es in der aktuellen Version (oder in V3?) bereits eine Möglichkeit dies abzubilden. Ein Aufteilen in mehrere *.fhd´s ist erstmal keine Option, da wir dann nicht unbedingt die Transaktionssicherheit der einen Quelldatei gewährleisten können. Oder doch?
Ein Ansatz mit einem eigenen SQL-Server bzw. .NET-Datatable Adapter wäre auch eine akzeptable Lösung, wenn diese TAbellen durch den FlowHeater im Mapping angesprochen werden können.
In Ihrer "Versions-Vorschau" haben Sie bereits so etwas schon im Blickfeld. Wie hoch ist hier die Priorisierung? (falls Sie schon konkret geplant haben).

Unsere Firma ist noch in der Evaluierungsphase, deshalb kenne ich noch nicht alle Möglichkeiten und "spiele" erst seit kurzem mit der Freeware-Version, die mich persönlich begeistert :woohoo:

Danke und Gruß
Stefan
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: CSV-Import zu mehreren SQL-Tables 3 Jahre 8 Monate her #1266

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

mit Hilfe des GroupOut Heaters können pro Eingangsdatensatz/Zeile beliebig viele, erst mal identische Kopien, auf der Write Seite angelegt werden.

Um jetzt pro Zeile unterschiedliche Daten in den einzelnen Feldern abspeichern zu können benötigen Sie pro Feld mind. eine If-Then-Else Bedingung.

Ich habe mal ein Beispiel für die Ursprüngliche Frage erstellt, siehe Anlage CSV-Daten-Duplizieren.zip

Hier werden über den GroupOut Heater pro Datensatz 4 Kopien angelegt. Dann benötigen Sie für die Bedingung Wenn 1. Kopie dann Wert, wenn 2. Kopie dann… einen AutoID Heater mit eingeschalteter GroupOut Option. Hiermit wird pro Datensatzkopie von 1 beginnend hochgezählt. Diesen Wert benötigen Sie nun für die Bedingung zum Setzen der Spalte "Value". Pro Wert der READ Seite, die Sie der Spalte „Value“ zuordnen möchten benötigen Sie einen IF-THEN-ELSE Heater. Als Bedingung tragen Sie hier 1 für erste Kopie, im zweiten IF-THEN-ELSE Heater tragen Sie 2 für zweite Kopie ein, usw.

Um jetzt die Werte auf der WRITE Seite einem Feld zuordnen zu können Verbinden Sie die Ausgänge der IF-THEN-ELSE Heater mit einem String Append Heater, den Ausgang des String Append Heaters können Sie nun mit dem eigentlichen Feld der WRITE Seite Verbinden. Hinweis: Bei Zahlen bzw. Datumsfeldern evtl. die Adapter Standardformatierung beachten!

Für das Feld SourceID verwende ich in dem Beispiel einen String Replace Heater, der als Eingang wiederrum den Output des AutoID Heaters erhält. Hier wird nun über eine CSV Ersetzungsliste der Wert 1 mit 129, der Wert 2 mit 130, … ersetzt.

Anhang csv_daten_duplizieren.zip nicht gefunden

Anhang:
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.

Aw: CSV-Import zu mehreren SQL-Tables 3 Jahre 8 Monate her #1267

  • Frank
  • Franks Avatar
  • Offline
  • New Member
  • Beiträge: 8
Hallo Herr Stark, vielen Dank - werde ich ausprobieren.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: CSV-Import zu mehreren SQL-Tables 3 Jahre 8 Monate her #1268

  • Frank
  • Franks Avatar
  • Offline
  • New Member
  • Beiträge: 8
Hallo nach dem Testen - habe bekomme ich nun diesen Fehler:
SQL-Write Adapter = Feld "Value" mit falschem Datentyp??
Wo der Datentyp in der SQL - DAtenbank Float ist, dies kann ich hier nicht einstellen?
Anhang:
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: CSV-Import zu mehreren SQL-Tables 3 Jahre 8 Monate her #1269

  • Frank
  • Franks Avatar
  • Offline
  • New Member
  • Beiträge: 8
Zudem ist in dem Feld "Value" nicht der Werte der jeweiligen - "Quantity - ID"
129
130
131
Sondern so wie es aussieht nur der Wert aus der 1. Spalte:
also nur die "Gelieferte Energie"?
Anhang:
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: CSV-Import zu mehreren SQL-Tables 3 Jahre 8 Monate her #1271

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
Das liegt vermutlich an falsch eingestellten Adapter Formateinstellungen der READ sowie der WRITE Seite? Dann bitte nicht Excel dazu verwenden um CSV Dateien zu editieren. Hier werden teilweise andere Zahlenformate verwendet bzw. angezeigt sowie auch falsch gespeichert. Am besten Sie öffnen mal Ihre CSV Datei über einen normalen Texteditor (z.B. Notepad). So wie Sie hier die Zahlen sehen so müssen Sie es auf der READ Seite im Textfile Adapter in den Formateinstellungen eingeben. Dann sollten Sie für die Value Felder (Gelieferte Energie, Wirkleistung 1, ...) auf der READ Seite den FlowHeater Datentyp von String (CSV Default) auf Decimal oder Double stellen. So wird dann beim Einlesen das richtige Format erkannt und die automatische Datentypumwandlung des FlowHeaters funktioniert :-)

Das Problem, dass lediglich die erste Spalte auf der WRITE Seite übernommen wird liegt wahrscheinlich daran, dass Sie in den IF-THEN-ELSE Bedingungen die falsche Eingangsreihenfolge verwendet haben. Der erste Eingangsparameter muss für jeden IF-THEN-ELSE Heater der AutoID Wert sein!

Bitte posten Sie mal Ihre Demo CSV Textdatei sowie die FlowHeater Definition dann passe ich das soweit an. (Bitte die beiden Dateien in ein ZIP Archiv packen)
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.

Aw: CSV-Import zu mehreren SQL-Tables 3 Jahre 8 Monate her #1272

  • Frank
  • Franks Avatar
  • Offline
  • New Member
  • Beiträge: 8
Hallo, danke hier die Dateien - sowie ein View auf die DB!

Anhang Flowheater.zip nicht gefunden

Anhang:
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: CSV-Import zu mehreren SQL-Tables 3 Jahre 8 Monate her #1273

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
Hallo Herr Rückert,

Sie waren nah dran. Ich habe auf der READ Seite das Zahlenformat geändert so dass es dem entspricht wie es in der CSV Textdatei vorkommt, siehe Screenshot.

Dann haben Sie in der IF-THEN-ELSE Bedingung Datentyp ändern auf Double gestellt. Diese Einstellung ist nur für die Bedingung vorgesehen. Bei Ganzzahlen am besten den FlowHeater Datentyp INTEGER verwenden. Der Rückgabedatentyp wird durch den IF-THEN-ELSE Heater nicht verändert.



Anhang DataLog2_mitDoubleWert.zip nicht gefunden

Anhang:
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.

Aw: CSV-Import zu mehreren SQL-Tables 3 Jahre 8 Monate her #1274

  • Frank
  • Franks Avatar
  • Offline
  • New Member
  • Beiträge: 8
Hallo Herr Stark, vielen Dank - anbei habe ich nochmal eine CSV-als Bsp. mit Beschreibung der DB-Table-ID's in Zeile 7.
Spalte H = Value ID (muss also nicht in das IF-Statement?)
Der X-Value Wert 4 bezieht auf welchen Wert?
Danke
F.Rückert
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: CSV-Import zu mehreren SQL-Tables 3 Jahre 8 Monate her #1275

  • Frank
  • Franks Avatar
  • Offline
  • New Member
  • Beiträge: 8
Hallo Herr Stark, vielen Dank - anbei habe ich nochmal eine CSV-als Bsp. mit Beschreibung der DB-Table-ID's in Zeile 7.
Spalte H = Value ID (muss also nicht in das IF-Statement?)
Der X-Value Wert 4 bezieht sich auf welchen Wert?
Danke
F.Rückert

Anhang testfile.zip nicht gefunden

Anhang:
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: CSV-Import zu mehreren SQL-Tables 3 Jahre 8 Monate her #1276

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
Hallo Herr Rückert,

der statische X-Value Wert "4" wird für den GroupOut Heater benötigt. Anhand dieses Wertes werden von jedem CSV Eingangssatz 4 identische Kopien angelegt = 5 Datensätze auf der WRITE Seite. Wenn Sie nur 4 Werte (Datensätze) auf der WRITE Seite ausgeben wollen müssen Sie hier für den Wert "3" angeben. So wird die Ursprüngliche CSV Zeile sowie 3 Kopien davon auf der WRITE Seite ausgegeben. Die IF-THEN-ELSE Bedingung für das nicht benötigte Feld lassen Sie dann einfach weg. Die Bedingungen müssen Sie ggf. Anpassen 1 = 1. Datensatz, 2 = 2. Datensatz, ...
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.

Aw: CSV-Import zu mehreren SQL-Tables 3 Jahre 8 Monate her #1277

  • StefanN
  • StefanNs Avatar
  • Offline
  • New Member
  • Beiträge: 7
Hallo Herr Stark,

ich habe es zwar nicht getestet aber das Problem mit den Satz duplizieren und mehrere Einträge auf der Zielseite zu erzeugen ist OK.
Aber ist es auch möglich in mehr als eine Tabelle (ich kann ja immer nur eine Tabelle pro Adapter auswählen) zu schreiben?
Entweder durch die Auswahl mehrerer Tabellen (zumindest suggestiert die aktuelle Oberfläche, dass es zumindest angedacht ist) oder durch mehrere Adapter mit je einer Tabelle.
Siehe auch mein Beispiel: Readseite (Aufragsdaten, Adresse und Öffnungszeiten in je eine Tabelle)

mfg
Stefan Neubauer
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: CSV-Import zu mehreren SQL-Tables 3 Jahre 8 Monate her #1278

  • Frank
  • Franks Avatar
  • Offline
  • New Member
  • Beiträge: 8
Hallo Herr Stark, habe alles in einen Zip-File gepackt,
da in die DB nicht die richtige Spalte übertragen wird.
Danke

Anhang Flow.zip nicht gefunden

Anhang:
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: CSV-Import zu mehreren SQL-Tables 3 Jahre 8 Monate her #1279

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
@Herr Rückert) In Ihrer Definition haben Sie den Ausgang der CSV Spalte "Gesamtwirkleistung (kW)" mit dem SQL Datenbankfeld "Value" verbunden. So wird immer der gleiche Wert in die SQL Tabelle geschrieben. Damit die Definition funktioniert müssen Sie den Ausgang des String Append Heaters mit dem SQL Feld „Value“ auf der WRITE (Import) Seite verbinden.

@Herr Neubauer) Derzeit ist das nicht möglich, dafür benötigen Sie momentan zwei (oder auch mehr) Definitionen die Sie nacheinander ausführen müssen. Die Version 3 ist jetzt bereits dafür vorbereitet dass zukünftig (in Version 3.x) mehrere Adapter auf der READ sowie auch auf der WRITE Seite verwendet werden können. Sowie wird es demnächst (auch in Version 3.x) möglich sein mehrere Steps nacheinander in einer Definition auszuführen.
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.
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.114 Sekunden