Announcement

Collapse
No announcement yet.

Prozedure

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Prozedure

    Ich habe folgenden Code

    ParamByName('IBIRTHDAYINTERVAL').AsInteger := dmMain.ibqryOptionen.FieldByName('TAGEGEBURTSTAGSB RIEF').AsInteger;
    ParamByName('ICHRISTMASINTERVAL').AsInteger := dmMain.ibqryOptionen.FieldByName('TAGEWEIHNACHTSBR IEF').AsInteger;
    ParamByName('INEWYEARINTERVAL').AsInteger := dmMain.ibqryOptionen.FieldByName('TAGENEUJAHRSBRIE F').AsInteger;;
    Execute;
    if (sprcPatientenGeburtstage.FieldByName('IBIRTHDAYCO UNT').AsInteger > 0) then
    begin

    dazu folgende StoreProc

    BEGIN
    MaxDate = CAST('TODAY' AS DATE) + :ibirthdayinterval;
    NowDate = CAST('TODAY' AS DATE);
    NowYear = EXTRACT(YEAR FROM CAST('TODAY' AS DATE));

    SELECT COUNT(PATIENTNR)
    FROM TBL_PATIENT
    WHERE
    (GEBURTSTAGSBRIEF = 'J') AND
    ADDMONTH(GEBURTSDATUM, ((:NowYear - EXTRACT(YEAR FROM GEBURTSDATUM))*12))
    BETWEEN (:NowDate) AND (:MaxDate)
    INTO :iBIRTHDAYCOUNT;

    MaxDate = CAST('24.12.' || CAST(NowYear AS VARCHAR(4)) AS DATE);
    IF (MaxDate - NowDate <= iCHRISTMASINTERVAL) THEN
    BEGIN
    SELECT COUNT(PATIENTNR)
    FROM tbl_patient
    WHERE
    (WEIHNACHTSBRIEF = 'J')
    INTO :iCHRISTMASCOUNT;
    END
    ELSE
    iCHRISTMASCOUNT = 0;

    MaxDate = CAST('31.12.' || CAST(NowYear AS VARCHAR(4)) AS DATE);
    IF (MaxDate - NowDate <= iNEWYEARINTERVAL) THEN
    BEGIN
    SELECT COUNT(PATIENTNR)
    FROM tbl_patient
    WHERE
    (NEUJAHRSBRIEF = 'J')
    INTO :iNEWYEARCOUNT;
    END
    ELSE
    iNEWYEARCOUNT = 0;
    suspend;
    END

    Der Übergabeparameter von 'INEWYEARINTERVAL' ist 3.

    als Rückgabewert in 'IBIRTHDAYCOUNT' müsste 9 sein ist aber nur 3.

    Die StoreProc in IBExpert liefert den richtigen Wert. Warum Delphi nicht? Habe ich was vergessen?

    Wer weiß schnelle Hilfe.

    Walter

  • #2
    Sorry

    Der Übergabeparameter von 'IBIRTHDAYINTERVAL'ist 3

    nicht 'INEWYEARINTERVAL'

    Comment

    Working...
    X