- Beiträge: 4
SQL-ServerUpdate funktioniert nicht, wenn alle Spalten im PK
- Claus Mayer
- Autor
- Offline
- Benutzer
Weniger
Mehr
13 Jahre 4 Monate her #529
von Claus Mayer
SQL-ServerUpdate funktioniert nicht, wenn alle Spalten im PK wurde erstellt von Claus Mayer
Hallo Herr Stark,
ich nutze seit einigen Wochen FlowHeater und es funktioniert prima.
Nun folgendes Problem:
Beim Import (write-Seite) in eine SQL-Server Tabelle, in der alle Spalten zum PK gehören, werden keine Update-Statements erzeugt.
Die Fehlermeldung lautet:
Die Update Anweisung hat keine Daten generiert! Ziehen Sie min. ein gefülltes Feld auf die WRITE Seite.
update dbo.[ArtNumbers]
Natürlich sind alle Entitäten richtig verbunden.
Was mache ich falsch?
ich nutze seit einigen Wochen FlowHeater und es funktioniert prima.
Nun folgendes Problem:
Beim Import (write-Seite) in eine SQL-Server Tabelle, in der alle Spalten zum PK gehören, werden keine Update-Statements erzeugt.
Die Fehlermeldung lautet:
Die Update Anweisung hat keine Daten generiert! Ziehen Sie min. ein gefülltes Feld auf die WRITE Seite.
update dbo.[ArtNumbers]
Natürlich sind alle Entitäten richtig verbunden.
Was mache ich falsch?
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
13 Jahre 4 Monate her #530
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: SQL-ServerUpdate funktioniert nicht, wenn alle Spalten im PK
Hallo Herr Mayer,
das geht so leider nicht. Das Problem dabei ist, dass der FlowHeater in diesem Fall die ursprünglichen Werte des Primary Key nicht mehr hat!
Nehmen wir an Sie haben zwei Felder auf der READ Seite
F1 = 1000
F2 = 2000
Diesen (Primary Key) Wert möchten Sie auf der WRITE Seite Updaten z.B.
F1 = 4000
F2 = 5000
Der FlowHeater kennt auf der Write Seite nur noch die neuen Werte und hat somit keinen Bezug mehr zum ursprünglichen Datensatz!
Workaround:
Fügen Sie Ihrer Tabelle ein neues Feld hinzu Typ Varchar, Länge mind. so lang dass alle Primary Key Felder zu String umgewandelt hineinpassen.
Nun erstellen Sie im ersten Schritt eine Definition die in dieser Tabelle das neue Feld mit den Primary Key Information füllt/aktualisiert. Verwenden Sie dazu den String Append Heater und ziehen alle Primary Key Felder in der Reihenfolge der Tabelle darauf. Der String Append Heater erzeugt daraus dann eine Zeichenfolge in etwa so
1000#2000#.... Weiter Felder des PrimrayKeys
Wenn Sie die Definition laufen lassen haben Sie in diesem Feld Ihre originalen Primary Key Daten. Hierüber können Sie nun eine zweite Definition, die die eigentlichen Primary Key Felder aktualisiert, laufen lassen.
Erstellen Sie dazu eine neue Definition. Nach dem Tabellen Schema auslesen ändern Sie die Primary Key Definition im FlowHeater. Klicken Sie dazu auf das Feld im Configurator und entfernen pro Feld jeweils den Hacken für Primary Key. Setzen Sie den Hacken nur für das neu hinzugefügte Feld. Die Tabelle wird jetzt anhand dieses Feldes aktualisiert.
Den Wert für den Primary Key müssen Sie nun wieder mit dem String Append Heater erzeugen. Die anderen (ursprünglichen Primary Key) Werte können Sie nun mit Ihren neuen Werten aktualisieren.
Der FlowHeater erzeugt nun so einen SQL Befehl
Update IHRE_TABELLE set F1 = 4000, F2 = 5000 WHERE NEUES_FELD = '1000#2000'
das geht so leider nicht. Das Problem dabei ist, dass der FlowHeater in diesem Fall die ursprünglichen Werte des Primary Key nicht mehr hat!
Nehmen wir an Sie haben zwei Felder auf der READ Seite
F1 = 1000
F2 = 2000
Diesen (Primary Key) Wert möchten Sie auf der WRITE Seite Updaten z.B.
F1 = 4000
F2 = 5000
Der FlowHeater kennt auf der Write Seite nur noch die neuen Werte und hat somit keinen Bezug mehr zum ursprünglichen Datensatz!
Workaround:
Fügen Sie Ihrer Tabelle ein neues Feld hinzu Typ Varchar, Länge mind. so lang dass alle Primary Key Felder zu String umgewandelt hineinpassen.
Nun erstellen Sie im ersten Schritt eine Definition die in dieser Tabelle das neue Feld mit den Primary Key Information füllt/aktualisiert. Verwenden Sie dazu den String Append Heater und ziehen alle Primary Key Felder in der Reihenfolge der Tabelle darauf. Der String Append Heater erzeugt daraus dann eine Zeichenfolge in etwa so
1000#2000#.... Weiter Felder des PrimrayKeys
Wenn Sie die Definition laufen lassen haben Sie in diesem Feld Ihre originalen Primary Key Daten. Hierüber können Sie nun eine zweite Definition, die die eigentlichen Primary Key Felder aktualisiert, laufen lassen.
Erstellen Sie dazu eine neue Definition. Nach dem Tabellen Schema auslesen ändern Sie die Primary Key Definition im FlowHeater. Klicken Sie dazu auf das Feld im Configurator und entfernen pro Feld jeweils den Hacken für Primary Key. Setzen Sie den Hacken nur für das neu hinzugefügte Feld. Die Tabelle wird jetzt anhand dieses Feldes aktualisiert.
Den Wert für den Primary Key müssen Sie nun wieder mit dem String Append Heater erzeugen. Die anderen (ursprünglichen Primary Key) Werte können Sie nun mit Ihren neuen Werten aktualisieren.
Der FlowHeater erzeugt nun so einen SQL Befehl
Update IHRE_TABELLE set F1 = 4000, F2 = 5000 WHERE NEUES_FELD = '1000#2000'
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.253 Sekunden