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: [Gelöst] Mehrere Datensätze in ein Feld schreiben

[Gelöst] Mehrere Datensätze in ein Feld schreiben 3 Jahre 11 Monate her #1174

  • Matthias Teichmann
  • Matthias Teichmanns Avatar
  • Offline
  • New Member
  • Beiträge: 5
Guten Tag,
zur besseren Verständlichkeit des Problems habe ich einen Screenshot der Tabelle gemacht und angehängt.

In der Quelldatenbank gibt es in dieser Tabelle keinen Primary Key. Die Datenbank gehört zu unserem Warenwirtschaftssystem.
Unter der "Artnr" den Benutzernamen und unter "Server" den Server des Webspaces unseres Kunden.
JEder Kudne kann aber auch beliebig viele Websaces buchen.
Leider gibt es zu jeder Kundennummer einen Eintrag pro gebuchten Webspace.
Ich möchte unseren kompletten Kundenstamm in ein CRM übertragen (MSSQL) und habe auf der Write-Seite ein Textfeld mit 2000 Zeichen.
Dort soll bei jedem Kunden (anhand der Kundennummer) jeder dazugehörige Benutzer, inklusive Server in folgendem Format geschrieben werden:
Bunzter - Server (Zeilenumbruch).
Ich rätsel und versuche schon seit Stunden das umzusetzen.
Geht das überhaupt mit dem Flowheater?


Dabei ist mir auch aufgefallen, dass der Flowheater abstürzt, sobald man auf der READ-Seite "Select * From Kundentraffic" eingibt.
Die Spalte "Preis" enthält teilweise Werte < x,yE-4, damit scheint der Flowheater nicht zurechtzukommen. (Oder der ODBC-Treiber schmiert dabei ab)

Mit freundlichen Grüßen

Matthias Teichmann
Anhang:
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Mehrere Datensätze in ein Feld schreiben 3 Jahre 11 Monate her #1175

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1101
Hallo Herr Teichmann,

Sie benötigen dazu zunächst den GroupBy Heater, der die Datensätze anhand der Kundennummer zusammenfasst. Dann müssen Sie die Felder Server und Benutzer über einen String Append Heater miteinander kombinieren. Diese Kombination (inkl. Trennzeichen) der beiden Felder muss anschließend über einen weiteren String Append Heater mit eingeschalteter Gruppierungsfunktion geschickt werden. Als Trennzeichen verwenden Sie hier z.B. "###" Hiermit werden alle Kombinationen zu dem Kunden zu einer Zeichenkette zusammengefasst. Das verwendete Trennzeichen "###" müssen Sie dann noch mittels des String Replace Heaters in den gewünschten Zeilenumbruch umwandeln.

Das klingt jetzt sehr kompliziert wenn Sie sich das Beispiel im Anhang anschauen wird es denke etwas klarer zu verstehen. Im Beispiel wird eine Access Datenbank verwendet!

Zu Ihrem ODBC Fehler) Der FlowHeater kann mit den Datentypen Decimal und Currency Zahlen mit bis zu 28 Stellen verarbeiten. Wenn Sie größere Zahlenwerte haben können Sie den Datentypen Double verwenden hier werden Zahlen bis 308 Stellen unterstützt. Allerdings ist dann die Genauigkeit auf 15-16 stellen begrenzt! Prüfen Sie mal welcher Datentyp für die Spalte Preis vom FlowHeater erkannt wurde, ggf. stellen Sie den Datentypen manuell auf Double. Ich vermute aber dass hier ein Problem mit dem ODBC Treiber vorliegt. Wird Ihnen eine Fehlermeldung angezeigt?

Dateianhang:

Dateiname: datensaetz...eren.zip
Dateigröße:11 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.
Letzte Änderung: 1 Jahr 3 Monate her von FlowHeater-Team.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Mehrere Datensätze in ein Feld schreiben 3 Jahre 11 Monate her #1176

  • Matthias Teichmann
  • Matthias Teichmanns Avatar
  • Offline
  • New Member
  • Beiträge: 5
Hallo Herr Stark,
erneut vielen Dank für Ihre schnelle Hilfe.
Das von Ihnen bereitgestellte Beispiel entspricht in etwa meinem Lösungsversuch.
Allerdings habe ich das Problem, dass es in diesem Fall nicht funktioniert.
Ich gehe davon aus, dass es daran liegt, dass die restlichen Kundendaten schon bestehen und ein Update gefahren wird.
Im Testlauf werden pro Kundennummer teilweise mehrere Updates gezogen.
Es Scheint aber teilweise zu funktionieren, wie man an dem angefügten Screenshot sieht.
Ich kann nicht nachvollziehen, warum das nur sporadisch funktioniert, da ich im Vergleich der Kunden in der Datenbank keine Signifikanten Unterschiede gefunden habe, die diesen Fehler verursachen könnte
Anbei ein Screenshot vom Testlauf (in der tatsächlichen Durchführung tritt das Problem natürlich genau so auf).


Zu dem ODBC Fehler:

Es gibt eine Fehlermeldung "Die Eingabezeichenfolge hat das falsche Format", trotz Double als Datentyp.
Das passiert sogar, wenn die Spalte Preis gar nicht ausgewählt ist, sondern nur mit dem Select auf der READ-Seite einbezogen wird.

Mit freundlichen Grüßen

Matthias Teichmann
Anhang:
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Mehrere Datensätze in ein Feld schreiben 3 Jahre 11 Monate her #1177

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1101
Hallo Herr Teichmann,

der GroupBy Heater fasst lediglich gleiche aufeinanderfolgende Werte zu einem Datensatz zusammen. Damit das in Ihrem Fall richtig funktioniert müssen Sie auf der READ Seite an das SQL Statement noch einen "ORDER BY" anhängen.

z.B. select * from Ihre-Tabelle ORDER BY KUNDENNR

Damit sollte das so funktionieren wie gewünscht.

Zu Ihrem ODBC Problem) Ich denke das liegt an dem verwendeten ODBC Treiber. Versuchen Sie mal das Feld bereits im SELECT auf einen anderen Datentypen zu casten. Wie das geht hängt von der verwendeten SQL Datenquelle im ODBC Adapter ab. Hier mal ein Beispiel wie es für den SQL-Server funktionieren würde.

select id, cast(preis as varchar(20)) from Ihre-Tabelle

Oder

select id, convert(varchar(20), preis) from Ihre-Tabelle

Die verwendete Syntax sowie die benötigen Befehle (cast, convert, to_char, …) hängen von der SQL Datenquelle der READ Seite ab.

PS: Nicht vergessen, nach der Änderung müssen Sie das Schema (Felder) erneut einlesen!
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: Mehrere Datensätze in ein Feld schreiben 3 Jahre 11 Monate her #1178

  • Matthias Teichmann
  • Matthias Teichmanns Avatar
  • Offline
  • New Member
  • Beiträge: 5
Vielen Dank,
jetzt funktioniert es einwandfrei.


Ich bin noch nicht dazu gekommen zu gucken, ob das Problem mit dem Preis mit der Möglichkeit nicht mehr auftritt, allerdings wird der Preis auch nicht wirklich benötigt.
Es hätte nur sein können, dass es ein Fehler im Flowheater ist, der mir zufällig über den Weg gelaufen ist und das wollte ich nur kurz erwähnen.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.085 Sekunden