- Beiträge: 3
zwei Werte auf der Read- und auf der Write-Seite vergleichen
- derIch
- Autor
- Offline
- Benutzer
Weniger
Mehr
13 Jahre 3 Monate her #630
von derIch
zwei Werte auf der Read- und auf der Write-Seite vergleichen wurde erstellt von derIch
Hallo,
ich komme in dieser Sache nicht weiter. Bei einem Abgleich zwischen einer ODBC-Tabelle auf der Read-Seite und einer MySql-Tabelle im Netz möchte ich nur dann den Wert auf der SQL-Seite verändern wenn dieser ungleich dem auf der ODBC-Seite ist.
Es geht um den Abgleich von Lagerbeständen zwischen diesen beiden Seiten. Blindes abgleichen funktioniert zwar dauert aber knapp 40 min.
Vorhanden ist auf beiden Seiten eine eindeutige Artikel-ID und auf ODBC-Seite das im Adapter berechnete Feld Bestand. Auf SQL-Seite existiert ein vorhandenes Feld für den Bestand.
Ich probiere es mit 2 x Lookup und einmal IfThenElse dazwischen. Ich bekomme aber nur die Fehlermeldung "Lookuo Error! select products_quantity from products where".
Mir fehlt der Eintrag in Where. Ich weiß nicht welche Angaben dort rein müssen wenn es keine festen Werte sind sondern ein Feld verglichen werden soll.
Für die Mühe besten Dank im voraus!
ich komme in dieser Sache nicht weiter. Bei einem Abgleich zwischen einer ODBC-Tabelle auf der Read-Seite und einer MySql-Tabelle im Netz möchte ich nur dann den Wert auf der SQL-Seite verändern wenn dieser ungleich dem auf der ODBC-Seite ist.
Es geht um den Abgleich von Lagerbeständen zwischen diesen beiden Seiten. Blindes abgleichen funktioniert zwar dauert aber knapp 40 min.
Vorhanden ist auf beiden Seiten eine eindeutige Artikel-ID und auf ODBC-Seite das im Adapter berechnete Feld Bestand. Auf SQL-Seite existiert ein vorhandenes Feld für den Bestand.
Ich probiere es mit 2 x Lookup und einmal IfThenElse dazwischen. Ich bekomme aber nur die Fehlermeldung "Lookuo Error! select products_quantity from products where".
Mir fehlt der Eintrag in Where. Ich weiß nicht welche Angaben dort rein müssen wenn es keine festen Werte sind sondern ein Feld verglichen werden soll.
Für die Mühe besten Dank im voraus!
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
13 Jahre 3 Monate her #631
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 Aw: zwei Werte auf der Read- und auf der Write-Seite vergleichen
Der Lookup Heater benötigt in der WHERE Bedingung
z.B. ARTIKELID = $1
In diesem Fall müssen Sie die Artikel-ID von der READ Seite mit dem Lookup Heater verbinden. Der Lookup Heater nimmt dann diesen WERT und tauscht dann $1 mit dem Eingangsparameter aus.
Ich denke das wird die Verarbeitung nicht beschleunigen, da hier bei jedem Datensatz ein zusätzlicher SQL SELECT auf die externe MySQL Datenbank durchgeführt wird. Wahrscheinlich wird dieser Lösungsweg noch länger benötigen.
Hier 2 mögliche Ansätze wie sie das evtl. beschleunigen können
z.B. ARTIKELID = $1
In diesem Fall müssen Sie die Artikel-ID von der READ Seite mit dem Lookup Heater verbinden. Der Lookup Heater nimmt dann diesen WERT und tauscht dann $1 mit dem Eingangsparameter aus.
Ich denke das wird die Verarbeitung nicht beschleunigen, da hier bei jedem Datensatz ein zusätzlicher SQL SELECT auf die externe MySQL Datenbank durchgeführt wird. Wahrscheinlich wird dieser Lösungsweg noch länger benötigen.
Hier 2 mögliche Ansätze wie sie das evtl. beschleunigen können
- Sie fahren immer einen kompletten Abgleich. Verbinden Sie für das UPDATE aber lediglich den Primary Key der Tabelle (ArtikelID) sowie das Feld das Sie aktualisieren möchten (Bestand). Hierdurch werden wesentlich kleinere SQL Update Statements gebildet.
z.B. UPDATE IHRE_TABELE SET BESTAND = 123 WHERE ARTICLEID = 5000
Das wird zwar auch keine Wunder vollbringen aber ca. 1/3 sollte das schneller durchlaufen als vorher. - Sie fügen in Ihrer lokalen Tabelle ein neues Feld z.B. "OnlineBestand" ein. Dieses Feld der READ Seite aktualisieren sie in der Update Definition über einen .NET Script Heater jedes Mal mit dem aktuellen Wert. So können Sie schon auf der lokalen Seite prüfen ob Sie was aktualisieren müssen
z.B. select * from lokale_tabelle where bestand <> onlinebestand
So werden nur wirklich geänderte Datensätze in der MySQL Datenbank aktualisiert.
Ein ähnliches Beispiel finden Sie hier: Datenvergleich beim Import
Im Skript müssten Sie hier AdapterWrite mit AdapterRead ersetzen!
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.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.258 Sekunden