Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Dateadd Unit als Variable in Procedure (https://www.delphipraxis.net/187137-dateadd-unit-als-variable-procedure.html)

waldforest 30. Okt 2015 14:06

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

Dateadd Unit als Variable in Procedure
 
Hallol,
ich nutze in eine Firebird Procedure DateAdd(week, :-XBACK, current_date).

Wobei hier XBack als Parameter übergeben wird

Gibt es eine Möglichkeit den ersten Parameter auch als variablen wert (Week, Month, Year) an die Firebird Procedure zu übergeben.
Aktuell wenn ich es mit einem Integer Parameter mache bekomme ich beim compellieren einen Token unknown

Lemmy 30. Okt 2015 14:10

AW: Dateadd Unit als Variable in Procedure
 
zeig doch bitte ein paar Zeilen Code...

waldforest 30. Okt 2015 15:34

AW: Dateadd Unit als Variable in Procedure
 
Hallo,
ich habe eine Lösung gefunden, vielleicht geht es auch anders. Anbei ein Auszug,


Delphi-Quellcode:
INSERT INTO Temp_order
{
  Artikel,
  VK_Mengen}

Select A.ARTIKEL_ID,
   Case when ( :xZeitfenster = 'week') then            
     (SELECT sum( OA.MENGE ) FROM ORDERS O INNER JOIN ORD_ARTIKEL OA ON O.ORDERS_ID
         =OA.ORDER_ID WHERE ((OA.Artikel_id = A.Artikel_ID) and (O.BESTELLDATUM >=
          dateadd(week,-:xBackZeit,current_date))))
  else
     (SELECT sum( OA.MENGE ) FROM ORDERS O INNER JOIN ORD_ARTIKEL OA ON O.ORDERS_ID
         =OA.ORDER_ID WHERE ((OA.Artikel_id = A.Artikel_ID) and (O.BESTELLDATUM >=
          dateadd(month,-:xBackZeit,current_date))))
  end AS VK_Menge

FROM LIEFERANT L INNER JOIN ARTIKEL A ON L.LIEFERANT_ID = A.ARTIKEL_LIEFERANT_ID
              WHERE (A.ARTIKEL_LIEFERANT_ID = :xLiefernat_ID) and (A.ARTIKEL_LAGER_IST <= A.ARTIKEL_LAGER_MIN);
    FROM LIEF L INNER JOIN ARTIKEL A ON L.LIE_ID = A.ARTIKEL_LIEF_ID
              WHERE (A.ARTIKEL_LIEF_ID = :xLiefernat_ID);

mkinzler 30. Okt 2015 15:45

AW: Dateadd Unit als Variable in Procedure
 
Oder mit einem EXECUTE BLOCK


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