Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Update - Abfrage richtig formulieren? (https://www.delphipraxis.net/65241-update-abfrage-richtig-formulieren.html)

K-Asche 14. Mär 2006 09:04

Datenbank: Access • Version: XP • Zugriff über: ADO

Update - Abfrage richtig formulieren?
 
Hi @ all,

ich möchte ein Update auf meine Tabelle machen. Wenn ich es wie folgt mache:
Delphi-Quellcode:
SQL := 'Update Verwaltung Set Status = ''0'' WHERE Fahrgast = ' + St1  + ' And Vorname = ' + St2;
Q.SQL.Add(SQL);
Q.ExecSQL;
erhalte ich die Exception Parameter "Wert in Variable St1" hat keinen Standardwert.
Was mach ich falsch?

Gruß,

Karsten

mquadrat 14. Mär 2006 09:06

Re: Update - Abfrage richtig formulieren?
 
Was für Datentypen haben St1 und St2 ?

K-Asche 14. Mär 2006 09:26

Re: Update - Abfrage richtig formulieren?
 
String

mquadrat 14. Mär 2006 09:37

Re: Update - Abfrage richtig formulieren?
 
Ich gebe zu blöde Frage ;) Sonst hättest du ja einen Compiler-Error.

mhh.. Die Fehlermeldung ist mir bis jetzt noch nicht untergekommen... Ne andere Anmerkung: Wenn Vorname in der DB ein varchar Feld ist fehlen in der Query noch Anführungszeichen. Ist Fahrgast denn in der DB ein int?

K-Asche 14. Mär 2006 09:43

Re: Update - Abfrage richtig formulieren?
 
Nein Fahrgast ist auch ein Textfeld. Denk dran ist eine Access Datenbank.
Ich hab es auch schon folgendermaßen versucht:
Delphi-Quellcode:
SQL := 'Update Verwaltung Set Status = ''0'' WHERE Fahrgast = '' + St1 + '' And Vorname = '' + St2 + ''';
Q.SQL.Add(SQL);
Q.ExecSQL;
Aber dann liest er mir die Variablen nicht mehr aus sondern benutzt den Namen als Wert.
Also wie muss man die Abfrage dann richtig formulieren also auch die richtige Setzung von Anführungszeichen?
Ich komm von C++ und da ist ein wenig einfacher weil es ja doppelte und einfache Anführungszeichen gibt.

mquadrat 14. Mär 2006 09:46

Re: Update - Abfrage richtig formulieren?
 
Delphi-Quellcode:
SQL := 'Update Verwaltung Set Status = ''0'' WHERE Fahrgast = ''' + St1 + ''' And Vorname = ''' + St2 + '''';
So müsste das zumindest von den Anführungszeichen her passen. Du kannst in den Editor-Optionen ja mal ne auffälligere Farbe für Strings einstellen, dann siehst du die Grenzen besser

marlem 14. Mär 2006 09:57

Re: Update - Abfrage richtig formulieren?
 
zum thema sql(allgemein) ist diese seite recht gut:
http://www.sqlcourse.com/

K-Asche 14. Mär 2006 10:00

Re: Update - Abfrage richtig formulieren?
 
@marlem: SQL war hier ja nicht das Problem sondern das Setzen der Anführungszeichen. Aber trotzdem danke.

Elvis 14. Mär 2006 10:02

Re: Update - Abfrage richtig formulieren?
 
Zitat:

Zitat von K-Asche
@marlem: SQL war hier ja nicht das Problem sondern das Setzen der Anführungszeichen. Aber trotzdem danke.

Nö, dein Problem ist, dass du den SQL String zusammenfriemelst anstatt [dp="Parameter SQL"]Parameter[/dp] zu benutzen...

mquadrat 14. Mär 2006 10:05

Re: Update - Abfrage richtig formulieren?
 
Zitat:

Zitat von Elvis
Nö, dein Problem ist, dass du den SQL String zusammenfriemelst anstatt [dp="Parameter SQL"]Parameter[/dp] zu benutzen...

Die Aussage finde ich jetzt ein bisschen pauschal...


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:14 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