![]() |
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:
erhalte ich die Exception Parameter "Wert in Variable St1" hat keinen Standardwert.
SQL := 'Update Verwaltung Set Status = ''0'' WHERE Fahrgast = ' + St1 + ' And Vorname = ' + St2;
Q.SQL.Add(SQL); Q.ExecSQL; Was mach ich falsch? Gruß, Karsten |
Re: Update - Abfrage richtig formulieren?
Was für Datentypen haben St1 und St2 ?
|
Re: Update - Abfrage richtig formulieren?
String
|
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? |
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:
Aber dann liest er mir die Variablen nicht mehr aus sondern benutzt den Namen als Wert.
SQL := 'Update Verwaltung Set Status = ''0'' WHERE Fahrgast = '' + St1 + '' And Vorname = '' + St2 + ''';
Q.SQL.Add(SQL); Q.ExecSQL; 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. |
Re: Update - Abfrage richtig formulieren?
Delphi-Quellcode:
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
SQL := 'Update Verwaltung Set Status = ''0'' WHERE Fahrgast = ''' + St1 + ''' And Vorname = ''' + St2 + '''';
|
Re: Update - Abfrage richtig formulieren?
|
Re: Update - Abfrage richtig formulieren?
@marlem: SQL war hier ja nicht das Problem sondern das Setzen der Anführungszeichen. Aber trotzdem danke.
|
Re: Update - Abfrage richtig formulieren?
Zitat:
|
Re: Update - Abfrage richtig formulieren?
Zitat:
|
Re: Update - Abfrage richtig formulieren?
Zitat:
Ich habe dem Such link "SQL und Parameter" übergeben, dort sollte er in wenigen Minuten alle Infos finden, die er braucht. |
Re: Update - Abfrage richtig formulieren?
@mquadrat: Hat jetzt aber funktioniert. Besten Dank.
Weiß nicht wie es anders geht. In C++ mach ich das immer so und da gibt es meines Wissens nach keine andere Möglichkeit. |
Re: Update - Abfrage richtig formulieren?
@mquadrat: Hab mir den Link mal reingezogen und das sieht natürlich schon mal sehr schön aus.
Ist aber mehr Quellcode als wenn ich den String zusammenfriemel. |
Re: Update - Abfrage richtig formulieren?
Zitat:
|
Re: Update - Abfrage richtig formulieren?
Ok, da könnts du schon recht mit haben:)
|
Re: Update - Abfrage richtig formulieren?
Machs doch einfach so:
Delphi-Quellcode:
SQL := Format('Update Verwaltung Set Status = ''0'' WHERE Fahrgast = %s And Vorname = %s',
[QuotedStr(st1), QuotedStr(st2)]); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:57 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