Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Update mit Datum (https://www.delphipraxis.net/149479-update-mit-datum.html)

daNiii 22. Mär 2010 15:05

Datenbank: Microsoft access 2007 • Zugriff über: sql

Update mit Datum
 
Liebe Programmierer,
In folgenden Programmiercode habe ich die Variable Heute (tdatetime) diese wird mit dem Wert NOW deklariert und soll in der Datenbank gespeichert werden.
Der Updatebefehl ist jedoch fehlerhaft.

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
Heute: tdatetime;
begin
if cb_dublikat.Checked = true then
begin
showmessage('Dublikat wird gedruckt');
end else begin
Heute:= now();

adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.Add('select * from Lieferscheine where Lieferschein ="'+makierterLieferschein+'"');
adoquery1.open;

if adoquery1.FieldValues['RDatum'] > 1 then  begin
 
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.Add('update from Lieferscheine set RDatum = '+datetostr(Heute)+' where Lieferschein ="'+makierterLieferschein+'"');
adoquery1.execsql;
adoquery1.close;



end else begin
If Messagedlg('Diese Rechnung wurde bereits ausgegeben. Möchten Sie ein Dublikat ausstellen?', mtConfirmation, [mbYes,mbNo],0) = mrYes then
begin
showmessage('Dublikat wird gedruckt');
end;
end;
end;



end;

DelphiBandit 22. Mär 2010 15:15

Re: Update mit Datum
 
Zitat:

Zitat von daNiii
Delphi-Quellcode:
adoquery1.sql.Add('update from Lieferscheine set RDatum = '+datetostr(Heute)+' where Lieferschein ="'+makierterLieferschein+'"');

Setz mal um Dein Datum auch das doppelte Anführungszeichen, wie Du es hinten bei makierterLieferschein (fehlt ein r) auch machst. Bei Firebird-Datenbanken zumindest muß ein Datum als String-Variable übergeben werden.

Bernhard Geyer 22. Mär 2010 15:18

Re: Update mit Datum
 
Und hier mein täglicher TIPP:

VERWENDE PARAMETRISIERTE INSERTS!

Und schon lösen sich solche und ähnliche Codierungsproblem in Luft auf.

ele 22. Mär 2010 15:24

Re: Update mit Datum
 
Zitat:

Zitat von Bernhard Geyer
Und hier mein täglicher TIPP:

VERWENDE PARAMETRISIERTE INSERTS!

Und schon lösen sich solche und ähnliche Codierungsproblem in Luft auf.

Und man hat zusätzlich den Vorteil, dass man sich keine Sorgen mehr über SQL-Injections machen muss...

Edit: Und es heisst übrigens "Duplikat" nicht "Dublikat".

mkinzler 22. Mär 2010 15:29

Re: Update mit Datum
 
Und auch nicht um das Datumsformat, ist schneller bei mehrfachen Upadtes/Inserts

shmia 22. Mär 2010 17:30

Re: Update mit Datum
 
Hier ist ein from zuviel; das dürfte dein Syntaxproblem sein.
Delphi-Quellcode:
adoquery1.sql.Add('update from Lieferscheine set RDatum = '..

daNiii 22. Mär 2010 18:33

Re: Update mit Datum
 
Danke!
Nachdem ich das from weggegeben habe, hat es funktioniert.
Außerdem danke, dass ihr mich auf meinen Rechtschreibfehler aufmerksam gemacht habt.
LG

haentschman 22. Mär 2010 19:01

Re: Update mit Datum
 
Hallo...

das es funktioniert ist ja schön... aber mit Parametern hast du dich nicht auseinandergesetzt ?

:hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:55 Uhr.

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