![]() |
sql - update-befehl - zur Lauzeit
hallo.
beschäftige mich mit "update"
Delphi-Quellcode:
die spalte TorDiff soll mit dem BeispielsWert i gefüllt werden. Später soll zur Laufzeit statt i ein berechneter Wert stehen.
var i:byte;
begin i:=5; DM_Tabelle.adoquery1.sql.Text:= 'update tabelle1 set TorDiff = (:i) where TorDiff is NULL'; DM_Tabelle.adoquery1.ExecSQL; end; es kommt keine fehlermeldung wenn ich den befehl ausführe. aber es wird auch nix gemacht. die spalte ist danach genau so leer wie vorher. wer kann mir helfen? |
Re: sql - update-befehl - zur Lauzeit
HY Du!
Probiers mal damit: DM_Tabelle.adoquery1.sql.Text:= Format('update tabelle1 set TorDiff = %d where TorDiff is NULL',[i]); Gruss OLLI |
Re: sql - update-befehl - zur Lauzeit
Müsstest Du da nicht mit den Params von TAdoQuery arbeiten ? Einfach so in den Text reinschreiben, hilft der Komponente ja noch nicht dabei, zwischen der Variablen i und dem reinen Stringbestandteil '...(:i)...' zu unterscheiden. Wenn Dein Feld TorDiff ein Textfeld ist, müsste Du es ja in Quotes stecken '...'(:i)'...'; dann hättest Du aber nicht den WERT i=5 drin, sondern wirklich (:i).
In der OH müsste die Arbeit mit Parametern (Params) beschrieben sein. :spin: Gruss, ST2000 |
Re: sql - update-befehl - zur Lauzeit
Moin,
wie wärs mit:
Delphi-Quellcode:
DM_Tabelle.adoquery1.sql.Text:= 'update tabelle1 set TorDiff = '+inttostr(i)+' where TorDiff is NULL';
|
Re: sql - update-befehl - zur Lauzeit
@ OLLI_T
danke für deine schnelle hilfe. funktioniert!
Delphi-Quellcode:
diese schreibweise ist mir völlig unklar :gruebel:
DM_Tabelle.adoquery1.sql.Text:=
Format('update tabelle1 set TorDiff = %d where TorDiff is NULL',[i]); was bewirkt z.B. diese %d ?? das mit dem [i] leuchtet mir ja noch ein.. |
Re: sql - update-befehl - zur Lauzeit
@ hEiHaChI
danke für deine lösung. diese verstehe ich auf anhieb und funktionieren tut sie auch. thx :thuimb: |
Re: sql - update-befehl - zur Lauzeit
Man könnte das so machen , ist vorallem bei vielen Feldern übersichtlicher
Delphi-Quellcode:
[edit=Christian Seehase]BB-Codes aktiviert. Bitte das Profil mal dahingehend überprüfen. Danke. Mfg, Christian Seehase[/edit]
With AdsQuery2 do Begin
Try close;Sql.Clear; Sql.Add('Update Dict_43000 set Umschreibung= :P0 , P = :P1 Where RowID = '+ZeileVar ); Params[0].Value:=EditDlg.Memo1.Text; Params[1].Value:=PVar; execsql; Except end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:46 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