Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   FreePascal Datensatz Update Fehler? (https://www.delphipraxis.net/181899-datensatz-update-fehler.html)

AlexII 16. Sep 2014 12:24

Datenbank: SQLite • Version: 3 • Zugriff über: Lazarus SQLite3Connection

Datensatz Update Fehler?
 
Hallo,

was mache ich hier falsch? Komme irgendwie nicht drauf.

Delphi-Quellcode:
    SQLQuery1.Close;
    SQLQuery1.SQL.Text := 'UPDATE tbmain SET(:title, :start)';
    SQLQuery1.ParamByName('title').AsString := TitleEdit.Text;
    SQLQuery1.ParamByName('start').AsDateTime := StartDateEdit.Date;
    SQLQuery1.ExecSQL;
    SQLTransaction1.Commit;

baumina 16. Sep 2014 12:27

AW: Datensatz Update Fehler?
 
Es fehlt ein where. Sollte die Datenbank trotzdem ein update ohne where zulassen, werden alle Datensätze upgedatet.

DeddyH 16. Sep 2014 12:27

AW: Datensatz Update Fehler?
 
Ich kenne zwar SQLite nur dem Namen nach, aber die generelle UPDATE-Syntax ist
SQL-Code:
UPDATE
  Tabelle
SET
  Feld1 = Wert1,
  Feld2 = Wert2
WHERE
  Bedingung

AlexII 16. Sep 2014 12:31

AW: Datensatz Update Fehler?
 
Zitat:

Zitat von baumina (Beitrag 1272754)
Es fehlt ein where. Sollte die Datenbank trotzdem ein update ohne where zulassen, werden alle Datensätze upgedatet.

Stimmt 100pro... das kommt davon wenn man nicht ausgeschlafen ist. :roteyes:

Dejan Vu 16. Sep 2014 12:32

AW: Datensatz Update Fehler?
 
Wieso sollte eine Datenbank ein UPDATE ohne WHRE nicht zulassen? Wie will man den sonst 'alles auf 0' setzen? Ach so' update tabelle set alles=0 where 1=1'. klar.

DeddyH 16. Sep 2014 12:37

AW: Datensatz Update Fehler?
 
Außerdem ist
Zitat:

SQL-Code:
SET(:title, :start)

einfach syntaktisch falsch, woher soll denn das DBMS wissen, welche Felder die übergebenen Werte bekommen sollen?

baumina 16. Sep 2014 12:39

AW: Datensatz Update Fehler?
 
[OT]Ich mag solche Suchspiele ... finde 10 Fehler 8-)[/OT]

AlexII 16. Sep 2014 12:44

AW: Datensatz Update Fehler?
 
Zitat:

Zitat von DeddyH (Beitrag 1272760)
Außerdem ist
Zitat:

SQL-Code:
SET(:title, :start)

einfach syntaktisch falsch, woher soll denn das DBMS wissen, welche Felder die übergebenen Werte bekommen sollen?

Die hier, oder?

Delphi-Quellcode:
SQLQuery1.ParamByName('title').AsString := TitleEdit.Text;
SQLQuery1.ParamByName('start').AsDateTime := StartDateEdit.Date;
Wie wäre es richtig?

DeddyH 16. Sep 2014 12:47

AW: Datensatz Update Fehler?
 
Der Teil ist doch korrekt, aber Dein SQL nicht. Schau Dir doch #3 noch einmal an, da sind Datenbankfeld und dessen zu setzender Wert angegeben.

AlexII 16. Sep 2014 12:51

AW: Datensatz Update Fehler?
 
Hm... da kann ich nur rätseln... etwa so?

Delphi-Quellcode:
SQLQuery1.SQL.Text := 'UPDATE tbmain SET(:title = title, :start = start) WHERE id=i';


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:48 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz