www.reset2.pl • Problem z zagnieżdzonym, wewnętrznym zapytaniem w warunku IF
Strona 1 z 1

Problem z zagnieżdzonym, wewnętrznym zapytaniem w warunku IF

: śr, 03 kwietnia 2019 12:55
autor: LeszekL
Witam, w makiecie dokumentu próbujemy wstawić warunek, którego wartość będzie wynikiem zapytania z bazy SQL lub funkcji .

Poniższe warunki nie działają :
#IF "#DZI_Nazwa#$Znak[1]"#="a"

#IF "$SQL{SELECT Left(d.nazwa, 3) FROM pracownk p, dzial d WHERE p.X_IDzial=d.X_I AND p.X_I={PRACOWNICY.X_I}}"#="abc"

#IF "$SQL{SELECT Left(d.nazwa, 3) FROM pracownk p, dzial d WHERE p.X_IDzial=d.X_I AND p.X_I={PRACOWNICY.X_I}}"="abc"#


Taki warunek nie wyrzuca błędu jednak pomimo takich samych wartości zawsze wyświetlana jest zawartośc po #ELSE :


#IF "#DZI_Nazwa#"="abc nazwa pełna"#


Czy przyczyną braku działania jest błąd w składni czy program nie obsługuje tego typu zapytań?

Dziękuję

: czw, 04 kwietnia 2019 8:55
autor: maciejg
Program obsługuje sql. Proszę sprawdzić czy są domknięte END IF-y. Prawdopodobnie zapytanie jest niewłaściwe.

: czw, 04 kwietnia 2019 10:05
autor: Tomasz Drzewiecki
Witam,

Dołączam się do kolegi z którym pracujemy nad tym tematem.

1. Tak, potwierdzam że program obsługuje SQL, gdyż jeśli np. z zapytania wewnątrz IF
#IF "$SQL{SELECT Left(d.nazwa, 3) FROM pracownk p, dzial d WHERE p.X_IDzial=d.X_I AND p.X_I={PRACOWNICY.X_I}}"="abc"#
wyrzucimy cudzysłowy
#IF $SQL{SELECT Left(d.nazwa, 3) FROM pracownk p, dzial d WHERE p.X_IDzial=d.X_I AND p.X_I={PRACOWNICY.X_I}}="abc"#
to program wypisuje błąd składni.

2. Samo zapytanie #IF działa i na przykładzie porównań z polami z danymi np. nazwa działu - wypisuje wartość, więc składnia jest spełniona

3. Samo zapytanie SQL wstawione w makietę też działa i wyświetla dokładnie oczekiwane 3 znaki, np. "abc".
$SQL{SELECT Left(d.nazwa, 3) FROM pracownk p, dzial d WHERE p.X_IDzial=d.X_I AND p.X_I={PRACOWNICY.X_I}}
Więc tutaj nie jest problem

4. Jednak połączenie dynamicznego zapytania/funkcji pobrania znaku + funkcji #IF nie potrafi rozpoznać wartości "abc" i zawsze wchodzi nam w warunek #ELSE#

Proszę o podanie dowolnego i działającego przykładu zastosowania połączenia IF z SQL lub z funkcją np. $Znak[1]

Z góry dziękuję!

Pozdrawiam,
Tomasz Drzewiecki
Shared Masters sp. z o.o.