Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird SQL Update or Insert mit Addition? (https://www.delphipraxis.net/205888-firebird-sql-update-insert-mit-addition.html)

Eppos 27. Okt 2020 18:13

Datenbank: Firebird • Version: 2.5.8 • Zugriff über: FireDAC

Firebird SQL Update or Insert mit Addition?
 
Hallo Zusammen,

die Funktion "Update or Insert" ist eigentlich genial.
Meine Frage wäre, ist es auch möglich zu addieren?
Beispiel:
Wenn Tabelle leer, dann Insert, Feld = 1 soweit klar
Wenn Tabelle nicht leer, Update, aber Update (2) = Feld (1) + Wert (1)

Gruß
Eppos

mkinzler 27. Okt 2020 18:19

AW: Firebird SQL Update or Insert mit Addition?
 
Das geht nur mit der
SQL-Code:
MERGE INTO
Anweisung.

IBExpert 27. Okt 2020 19:00

AW: Firebird SQL Update or Insert mit Addition?
 
ist mit einem execute block auch kein Hexenwerk

Code:
execute block
as
declare variable id integer;
declare variable val integer;
begin
  for select id, val from srctbl into id, val
  do
    if (exists(select id from tgttbl where id=:id))
    then
      update tgttbl set val=val+:val where id=:id;
    else
      insert into tgttbl(id,val) values (:id,:val);

end
einfach mal so runtergetippt, sollte aber nachvollziehbar sein, was man braucht
und wie das geht. Ausführen kann das jede T*query in sql property mit execsql o.ä.


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