Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Firebird Update or Insert (https://www.delphipraxis.net/185500-firebird-update-insert.html)

waldforest 17. Jun 2015 10:22

Datenbank: Firebird • Version: 2.5 • Zugriff über: Zeos

Firebird Update or Insert
 
Hallo,
ich habe eine Frage zu Update or Insert in Firebird Procedure

Meine Procedur sieht vor, in Abhängigkeit von übergabeparametern bestimmte Spalten zu befüllen.

Code:
 UPDATE OR INSERT INTO RECHNUNGEN (
           RECHNUNGS_RENR,
           RECHNUNGS_BETRAG,
           RECHNUNGS_ZAHLUNGSMETHODE
           )
           VALUES
           (
               :NEW_RENR,
               IIF (:NEW_ZAHLMETHODE = 7,:NEW_ZAHLBETRAG, RECHNUNGS_BETRAG)
               :NEW_ZAHLMETHODE
           ),
Der Rechnungsbetrag soll nur im Insertfall gesetzt werden, im Updatefall der bestehende Wert beibehalten. Mit beschriebener Anweisung erhalte ich eine Fehlermeldung für Rechnungs_Betrag "Column unknown"

Wie kann ich dies in der UPDATE OR INSERT Anweisung verarbeiten, den bestehenden Wert zu nehmen ?

Neutral General 17. Jun 2015 10:50

AW: Firebird Update or Insert
 
Du musst den Rechnungsbetrag in dem Fall selbst selektieren:
Code:
 UPDATE OR INSERT INTO RECHNUNGEN (
           RECHNUNGS_RENR,
           RECHNUNGS_BETRAG,
           RECHNUNGS_ZAHLUNGSMETHODE
           )
           VALUES
           (
               :NEW_RENR,
               IIF (:NEW_ZAHLMETHODE = 7,:NEW_ZAHLBETRAG, (SELECT FIRST 1 rechnungen.rechnungs_betrag FROM rechnungen WHERE rechnungen.rechnungs_renr = :NEW_RENR))
               :NEW_ZAHLMETHODE
           ),

waldforest 17. Jun 2015 10:54

AW: Firebird Update or Insert
 
Hallo,
danke !


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