Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Fehler in SQL bei Update (https://www.delphipraxis.net/59496-fehler-sql-bei-update.html)

Hansi 23. Dez 2005 10:26

Datenbank: MySQL • Version: 4,1 • Zugriff über: Zeos

Fehler in SQL bei Update
 
Hey,

Ich finde einfach nicht den Fehler. Er meldet mir immer dass er "in der Nähe" von Hersteller_ID einen Fehler in der Syntax findet. (Schön für Ihn ;))

Delphi-Quellcode:
    ...
    SQL.Clear;
    SQL.Text := 'UpDate HERSTELLER SET HERSTELLER = "'+ Edit1.Text + '" '+
                  ', WEBSITE = "'+ Edit2.Text + '", GELOESCHT = "N", Where HERSTELLER_ID = "' + sPosNr + '"';
    ExecSQL;
    ...
Tabelle: Hersteller
Felder: Hersteller (VarChar), Hersteller_id (Int), Website (VarChar), Geloescht (Enum)

sPosNr = "IntToStr(integer Zahl)"

Was mache ich falsch?

alex517 23. Dez 2005 10:37

Re: Fehler in SQL bei Update
 
Hi

Delphi-Quellcode:
   Where HERSTELLER_ID = "' + sPosNr + '"';
wenn HERSTELLER_ID ein Integer ist solltest du die (") weglassen.

alex

Sharky 23. Dez 2005 10:42

Re: Fehler in SQL bei Update
 
Hai Hansi,

ich habe mir angewöhnt nur noch mit Parametern zu arbeiten. Da muss ich mich nicht darum kümmern das die Werte "richtig formatiert" ankommen.

In deinem Fall könnte das dann so aussehen:
Delphi-Quellcode:
    ...
    SQL.Clear;
    SQL.Text := 'UpDate HERSTELLER SET HERSTELLER = :phersteller, WEBSITE = :pwebsite, GELOESCHT = "N" ' + #10
        ' Where HERSTELLER_ID = :phersteller_id';
    SQL.ParamCheck := True;
    SQL.ParamByName ('phersteller').AsString := Edit1.Text;
    SQL.ParamByName ('pwebsite').AsString := Edit2.Text
    SQL.ParamByName ('phersteller_id').AsInteger := integer_zahl;
    ExecSQL;
    ...

Hansi 23. Dez 2005 11:02

Re: Fehler in SQL bei Update
 
Habe den Fehler gefunden! Es lag an der Zeilentrennung mit dem "+" und den Kommas dazwischen! Die Felder werden mit KOmmas getrennt. Vor der WHERE Klausel darf kein "," mehr stehen!


Delphi-Quellcode:
    SQL.Clear;
    SQL.Text := 'UpDate HERSTELLER SET HERSTELLER = "'+ Edit1.Text + '", WEBSITE = "'+ Edit2.Text + '", GELOESCHT = "N" Where HERSTELLER_ID = "' + sPosNr + '"';
    ExecSQL;
Vielen Dank für eure Hilfe!

Schöne Weihnachten euch allen!


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 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 by Thomas Breitkreuz