Zum Hauptinhalt springen
Weil einfach - produktiver ist

Der Daten Spezialist

Konvertieren Sie die Daten mühelos zwischen verschiedenen Formaten ohne Programmierkenntnisse dank Visual Designer. Effizient und super einfach.
Mit der Freeware Version können bis zu 100.000 Datensätze verarbeitet werden!
Flowheater Chart

SQL Heater liefert nicht das gewünschte Ergebnis

  • Christoph Sauerborn
  • Autor
  • Offline
  • Benutzer
  • Benutzer
Mehr
5 Jahre 4 Monate her #3780 von Christoph Sauerborn
Hallo zusammen,

folgendes Szenario: Ich habe auf der Read Seite Datenbank A mit Tabelle 'auftraege' und auf der Write Seite ebenfalls Datenbank A mit Tabelle 'auftraege' sowie Datenbank B mit Tabelle 'bkz_table_kiste'. Ich möchte Werte in Tabelle 'auftraege' updaten, sofern in Tabelle 'bkz_table_kiste passende Werte zu Einträgen aus 'auftraege' zu finden sind.

Ich habe daher einen SQL Heater aufgesetzt, der auf den Adapter von DB B gerichtet ist. Dieser fragt ab, ob zum Parameter $Material$ in Tab. B1 ein Wert in der Spalte BKZ zu finden ist.

Select BKZ  from bkz_table_kiste Where Material='$Material$' Limit 1

Sofern kein Ergebnis gefunden wird, soll der Wert 0 zurückgegeben werden.

Leider erhalte ich immer den Wert 0 zurück. Ich habe den Query bereits direkt im SQL-Server eingegeben mit entsprechenden Parametern - dort erhalte ich ein Ergebnis. Was mache ich falsch?

Besten Dank vorab für die Hilfe!

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
5 Jahre 4 Monate her #3781 von FlowHeater-Team
Hallo Herr Sauerborn,

Wurde der Parameter $Material$ auch mit dem Set Parameter Heater gesetzt?

Wenn ja, welcher FlowHeater Datentyp liegt dem Feld über dem der Parameter gesetzt wird zugrunde. Ist das ein numerischer Datentyp kann es sein, dass hier die automatische Datentypumwandlung die Ursache ist.

z.B. wird ein Wert über eintausend in den deutschen Standardeinstellungen als „1.000“ umgewandelt. Sollte es sich um einen Wert mit nachkommstellen handeln ggf. auch mit Nachkommastellen.

Sie können das ändern, indem Sie den Parameter über Menü->Bearbeiten->Parameter anlegen und ihm eine abweichende Formatierung zuweisen, siehe Screenshot.

Alternativ dazu könnten Sie auch den String Format Heater verwenden bevor der Parameter gesetzt wird.

Im Anhang finden Sie ein kleines Beispiel dazu.




Dateianhang:

Dateiname: parameter-format.zip
Dateigröße:2 KB

gruß
Robert Stark

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Christoph Sauerborn
  • Autor
  • Offline
  • Benutzer
  • Benutzer
Mehr
5 Jahre 4 Monate her #3782 von Christoph Sauerborn
Hallo Herr Stark,

das war schon sehr hilfreich. Mir war nicht klar, dass ich den Parameter konkret Setten muss, ich hatte anderen Foren-Beiträge so verstanden, dass es ausreicht, wenn ein solcher Parameter als Feldname in einem der Adapter hinterlegt ist.

Zumindest erhalte ich nun Ergebnisse, mit der Ausnahme, dass die Werte, die ich aus der SQL erhalte, ein falsches Format zu haben scheinen. Ich habe Beispiele aus dem Forum genutzt und frage den Wert mit folgendem Query ab:

string sql = String.Format("Select masse from auftraege where Material='{0}'",material);
object masse= AdaptersWrite[0].Execute(sql, true);
return masse;

Der Eintrag ist dann in meiner SQL ein leeres Feld, also nicht NULL sondern leer. Muss ich noch eine Umwandlung zu einem String durchführen? 

Besten Dank für die kompetente Hilfe!

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
5 Jahre 4 Monate her #3783 von FlowHeater-Team
Hallo Herr Sauerborn,

in der aktuellen Version kann im SQL bzw. Lookup Heater für den Standard Rückgabewert nicht NULL bzw. DBNULL angegeben bzw. ausgewählt werden. In der aktuellen Beta Version wurde dieses Feature nun eingebaut.

Alternativ dazu könnte über den IF-THEN-ELSE Heater geprüft werden ob das Feld Leer bzw. einen bestimmten Wert hat um dann explizit mittels des NULL Heater dem Feld DBNULL zuzuweisen, siehe Screenshot.





BetaVersion Download
FlowHeaterBeta 32 Bit
FlowHeaterBeta 64 Bit
FlowHeaterServer Beta

gruß
Robert Stark

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Christoph Sauerborn
  • Autor
  • Offline
  • Benutzer
  • Benutzer
Mehr
5 Jahre 4 Monate her #3784 von Christoph Sauerborn
Hallo Herr Stark,

mein Ziel ist es nicht, dass in der DB "NULL" steht, sondern der Rückgabewert der SQL-Abfrage. Meine Frage ist vielmehr, ob ich hier:

object masse= AdaptersWrite[0].Execute(sql, true);
return masse;

noch eine Umwandlung in einen String durchführen muss, bevor ich "return masse;" ausführen lasse. 

Viele Grüße

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
5 Jahre 4 Monate her #3785 von FlowHeater-Team
nein, das ist nicht notwendig. Der FlowHeater wandelt das automatisch in den aktuell benötigten Datentyp um.

gruß
Robert Stark

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
5 Jahre 4 Monate her #3786 von FlowHeater-Team
wenn bei Ihnen eine Leere Zeichenfolge ausgegeben wird. liegt das vermutlich an dem generierten SQL. Zum testen einfach mal den SQL String zurückgeben (return sql;) und anzeigen lassen. Ich gehen mal davon aus, dass hier das gleich Problem mit der Formatierung der WHERE Klausel vorliegt.

gruß
Robert Stark

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.327 Sekunden
FlowHeater Logo

FlowHeater - Der Daten Spezialist

Effiziente Datenintegration und Transformation mit FlowHeater - Ihre Lösung für nahtlosen Datentransfer.

Rechtliches

Support & Kontakt

Kontaktinformation

Telefon:
0951 / 99339792

E-Mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.


Copyright © 2009-2024 by FlowHeater GmbH. Alle Rechte vorbehalten.