Przejdź do głównej zawartości

Edytor SQL


Niektóre bloczki Przetwarzania posługują się skryptami SQL np. w celu pobrania danych z bazy czy wykonania dowolnej aktualizacji.

wskazówka

Warto skorzystać z funkcji podpowiadania treści aktywowanej kombinacją klawiszy Ctrl+Spacja. W oknie podpowiedzi znajdziemy zarówno elementy szerokiego zakresu składni SQL, ale też dodatkowe elementy specyficzne dla Przetwarzania danych. Więcej patrz: Podpowiadanie składni

Treść skryptów może być uzupełniona o dodatkowe wyrażenia służące do odwołania się do danych, dostępnych w bieżącym rekordzie czy pakiecie jako całości.

Odwołania do danych mogą być realizowane na dwa sposoby:

  1. Jako wartości parametrów - wtedy odwołania do danych należy umieścić między ciągami znaków: #(' i ')#. Na przykład, mając strukturę z polem typu Tekst o nazwie Pole1 możemy utworzyć następujące zapytanie:

SELECT * FROM TABLE where COLUMN = #(Pole1)#

W powyższym przykładzie, w miejsce odwołania do pola Pole1 zostanie wstawiona wartość, która przyjdzie z rekordu danych sformatowana do języka SQL. Jeśli zatem mamy rekord danych zawierający w polu Pole1 wartość "Jakiś tekst", to zapytanie, w zależności od wybrania opcji Parametryzowane zapytania w bloczku Odczyt z bazy będzie miało postać:

Jeśli Parametryzowane zapytania ma wartość Tak (zapytanie parametryczne):

SELECT * FROM TABLE where COLUMN = @Pole1

Jeśli Parametryzowane zapytania ma wartość Nie:

SELECT * FROM TABLE where COLUMN = 'Jakiś tekst'

  1. Jako fragmenty SQL do tworzenia dynamicznych zapytań SQL - wtedy odwołania do danych należy umieścić między ciągami znaków: ##(' i ')#. Na przykład, mając strukturę z polem o nazwie Nazwa_kolumny typu Tekst możemy utworzyć następujące zapytanie:

SELECT ##(Nazwa_kolumny)# as COL FROM TABLE

W takim wypadku w miejsce odwołania do pola Nazwa_kolumny zostanie wstawiona wartość, która przyjdzie z rekordu danych bez żadnego formatowania. Jeśli zatem mamy rekord danych zawierającym w polu Nazwa_kolumny wartość "Moja_kolumna", to zapytanie będzie miało postać:

SELECT Moja_kolumna as COL FROM TABLE

Algorytm uruchamiania pakietu przetwarzania wymaga, aby przed uruchomieniem pakietu znane były schematy danych wszystkich bloczków. W przypadku "dynamicznych" zapytań SQL przed uruchomieniem pakietu nie zawsze jest w stanie wstawić w miejsce odwołania do danych wartości, która wygeneruje poprawne zapytanie. Może to spowodować błąd na etapie walidacji pakietu, a co za tym idzie pakiet nie zostanie uruchomiony. (Np. dla zapytania SELECT ##(Nazwa_kolumny)# as COL FROM TABLE przed uruchomieniem pakietu, system nie będzie wiedział co wstawić w pole Nazwa_kolumny, zatem spróbuje w to odwołanie do pola wstawić wartość pustą, co będzie skutkowało niepoprawnym zapytaniem SQL). Aby temu zapobiec, w miejscu odwołania do danych istnieje możliwość podania wartości domyślnej, która ma zostać użyta na etapie walidacji. Wartość domyślną podajemy w nawiasach, po przecinku, np.:

SELECT ##(Nazwa_kolumny, Wartość_domyślna)# as COL FROM TABLE

Rozwiązanie to umożliwia podanie jakiejś wartości w trakcie projektowania, jeśli prawdziwe wartości nie są dostępne (np. nieustawiony ARG w pakiecie (argument wywołania pakietu) lub brak bieżącego rekordu).

W przykładzie niżej mamy trzyliterowy napis 'S' do użycia w ramach odwołania tekstowego (podwójny ##) i jedną literkę S jako odwołanie parametryczne (pojedynczy #)

SELECT * FROM sys.objects
WHERE type in (##(ARG:ARG_ListaZgloszen,'S')#)

--np. ('S')

SELECT * FROM sys.objects
WHERE type = #(ARG:zz,S)#

Kolejny przykład, dwa elementy. Wartość "design-time" to cały tekst od przecinka do nawiasu zamykającego.

SELECT * FROM sys.objects
WHERE type in (##(ARG:ARG_ListaZgloszen,'S', 'U')#)

W treści skryptów można odwoływać się do następujących drzew danych:

  1. Rekordy zapytań: #(Pole1)#- wartość pola rekordu np. zapytania użyta jako parametr SQL
  2. Argumenty pakietu: #(ARG:NazwaArgumentuWywolaniaPakietu)#
  3. Zmienne pakietu: #(PKG:NazwaBloczka\NazwaParametruBloczka)#
  4. Słowniki zadeklarowane w pakiecie: #(DIC:NazwaSlownika\kolumna)#

Sam edytor ułatwia też pracę z językiem SQL poprzez kolorowanie składni i wyjaśnianie elementów wskazanych myszą.

Zobacz również​

Wyrażenia regularne

Testy GUI

Bloczki