![]() |
Datenbank: ACCESS • Version: 2003 • Zugriff über: ADO
Syntax-Fehler in From-Klausel
Hallo, ich bekomme von meinem Compiler eine Fehlermeldung:' Syntax-Fehler in FROM-Klausel'
hier der Code:
Delphi-Quellcode:
komm einfach nicht drauf, was da flasch ist?
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT K.EK_EUR + K.URA_PREIS AS Price FROM KOMSA As K INNER JOIN Warenbestand AS W On W.external_id = K.KOMSANUMMER SET W.products_price = Price'); ADOQuery1.ExecSQL; |
AW: Syntax-Fehler in From-Klausel
Es gibt kein Set bei einem select
|
AW: Syntax-Fehler in From-Klausel
Ja, wenn schon, dann
![]() |
AW: Syntax-Fehler in From-Klausel
na toll, und wie kriege ich den 'Price' in die w.products_price?
|
AW: Syntax-Fehler in From-Klausel
:arrow:
![]() |
AW: Syntax-Fehler in From-Klausel
Delphi-Quellcode:
Habs jetzt mal so geschrieben, kommt trotzdem der Fehele ' Syntax-Fehler in FROM-Klausel'
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT EK_EUR + URA_PREIS AS Price FROM KOMSA'); ADOQuery1.SQL.Add('UPDATE Warenbestand As W INNER JOIN KOMSA As K On W.external_id = K.KOMSANUMMER SET W.products_price = Price'); ADOQuery1.ExecSQL; |
AW: Syntax-Fehler in From-Klausel
Was noch wichtig ist, in einigen Zeilen von URA_PREIS stehen keine werte drin.
|
AW: Syntax-Fehler in From-Klausel
Hallo,
Du hättest dir mal durchlesen sollen wie die Update-Syntax funktioniert... Es müsste ungefähr so gehen: (Keine Garantie dass es fehlerfrei ist!)
SQL-Code:
UPDATE
warenbestand SET products_price = ( SELECT EK_EUR + iif(URA_PREIS is NULL,0,URA_PREIS) FROM komsa WHERE (komsa.komsanummer = warenbestand.external_id) ) |
AW: Syntax-Fehler in From-Klausel
Hab das jetzt so hier:
Delphi-Quellcode:
Und bekomme das hier:
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT K.EK_EUR + K.URA_PREIS AS Price FROM KOMSA As K WHERE K.URA_PREIS IS NOT NULL'); ADOQuery1.SQL.Add('UPDATE Warenbestand As W INNER JOIN KOMSA As K On W.external_id = K.KOMSANUMMER SET W.products_price = Price'); ADOQuery1.ExecSQL; ADOQuery1.SQL.Clear; --------------------------- Benachrichtigung über Debugger-Exception --------------------------- Im Projekt DatenZugriff.exe ist eine Exception der Klasse EOleException mit der Meldung 'Syntaxfehler (fehlender Operator) in Abfrageausdruck 'K.URA_PREIS IS NOT NULL UPDATE Warenbestand As W INNER JOIN KOMSA As K On W.external_id = K.KOMSANUMMER SET W.products_price = Price'' aufgetreten. --------------------------- Anhalten Fortsetzen Hilfe --------------------------- Darf wahrscheinlich muss ich erst eins ausführen und dann das andere, oder? @Neutral Genral: Ahso, ich muss bei SQL die Sache verschachteln!? |
AW: Syntax-Fehler in From-Klausel
Das war ja auch nicht der Vorschlag!
|
AW: Syntax-Fehler in From-Klausel
Zitat:
Ansonsten kannst du sie auch mit einem 'GO' trennen und separat ausführen lassen, IIRC. |
AW: Syntax-Fehler in From-Klausel
Eh.. Du musst halt im Update ein (Sub-)Select machen.
Zitat:
Musst meinen Code anpassen wenn du die Datensätze wo der ura_preis null wäre nicht updaten willst. Wenn für die Berechnung null = 0 sein soll, d.h. products_price = EK_EUR, dann ist mein Code (vom Prinzip her) richtig. |
AW: Syntax-Fehler in From-Klausel
In dem select ist das AS zuviel des Guten. "From KOMSA K" wäre richtig.
|
AW: Syntax-Fehler in From-Klausel
Zitat:
|
AW: Syntax-Fehler in From-Klausel
Also wenn ich das so schreibe:
Delphi-Quellcode:
dann kommt diese Meldung:
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('UPDATE Warenbestand SET products_price = (SELECT EK_EUR + iif(URA_PREIS is not NULL, URA_PREIS, 0) FROM Komsa WHERE (komsa.komsanummer = warenbestand.external_id))'); ADOQuery1.ExecSQL; --------------------------- Benachrichtigung über Debugger-Exception --------------------------- Im Projekt DatenZugriff.exe ist eine Exception der Klasse EOleException mit der Meldung 'Operation muss eine aktualisierbare Abfrage verwenden' aufgetreten. --------------------------- Anhalten Fortsetzen Hilfe --------------------------- |
AW: Syntax-Fehler in From-Klausel
Hallo,
Guck mal. Eventuell ist Punkt 2 (unter "Lösungen") deine Lösung: ![]() Ansonsten kann ich dir leider nicht weiterhelfen. Access ist mir eh etwas suspekt :? |
AW: Syntax-Fehler in From-Klausel
Code:
Hierbei wird in alle Datensätze in "products_price" das ergebnis von (select ek_eur....) eingetragen. Und ich glaube, das ist nicht im Sinne des Erfinders.
UPDATE Warenbestand
SET products_price = (SELECT EK_EUR + iif(URA_PREIS is not NULL, URA_PREIS, 0) FROM Komsa WHERE (komsa.komsanummer = warenbestand.external_id)) Wenn ich mich richtig erinnere muß das Ergebnis dieses selects auch genau ein Datensatz sein, und das ist wohl nicht der Fall. Zitat:
Gruß K-H |
AW: Syntax-Fehler in From-Klausel
So hab ich das Problem nun gelöst:
Delphi-Quellcode:
irgendwie ganz einfach, auf einmal ;)
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('UPDATE Warenbestand As W INNER JOIN KOMSA As K On W.external_id = K.KOMSANUMMER SET W.products_price = IIF(K.URA_PREIS is not null, K.URA_PREIS + K.EK_EUR, K.EK_EUR)'); ADOQuery1.ExecSQL; |
AW: Syntax-Fehler in From-Klausel
Zitat:
Der Compiler meldet hier keinen Fehler, sondern es wird im laufenden Betrieb eine Exception geworfen! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz