Co je skriptová proměnná

  • Skriptová proměnná je dočasné úložiště hodnot používané během provádění skriptu.
  • Proměnné se zapisují ve tvaru „#A#“, „#B#“, „#C#“ atd.
  • Skriptové proměnné nejsou databázové sloupce – existují pouze po dobu běhu skriptu.
  • Každá proměnná má vždy právě jeden datový typ.

Podporované datové typy proměnných:

  • String – textový řetězec
  • Integer – celé číslo
  • Long – velké celé číslo
  • Double – desetinné číslo
  • Date – datum

Databázová hodnota null

  • Skript používá databázovou hodnotu „null“.
  • Hodnota „null“ znamená, že proměnná nemá definovanou hodnotu.
  • Nově deklarovaná proměnná, které nebyla přiřazena hodnota, má vždy hodnotu „null“.
  • Hodnotu „null“ je možné přiřadit explicitně pomocí proměnné „#null#“.

Deklarace proměnné

Proměnnou je nutné před použitím vždy deklarovat. Deklarací se určuje její datový typ.

Proměnnou lze deklarovat několika způsoby:

  • Pomocí příkazu pro deklaraci proměnné ve skriptu.
  • Načtením hodnoty z databázového dotazu – datový typ proměnné se automaticky převezme z typu databázového sloupce.
  • Pomocí výrazů:
    • String(text)
    • Integer(číslo)
    • Long(číslo)
    • Double(číslo)
    • Date(datum)

Důležité chování deklarace:

  • Pokud již proměnná existuje a je znovu deklarována s jiným typem, její hodnota se nastaví na „null“.

Jedna hodnota vs. pole hodnot

  • Proměnná načtená z databázového dotazu se automaticky stává polem hodnot.
  • Každý řádek výsledku dotazu odpovídá jednomu prvku pole.
  • Pokud databázový dotaz nevrátí žádný záznam, vznikne pole s nulovým počtem prvků.

Pole hodnot je možné vytvořit i ručně pomocí serverových funkcí:

  • StringArray(hodnota1;hodnota2;…)
  • IntegerArray(počet_prvků)
  • LongArray(počet_prvků)
  • DoubleArray(hodnota1;hodnota2;…)
  • DateArray(hodnota1;hodnota2;…)

Přiřazování hodnot

  • Hodnotu proměnné lze přiřadit jiné proměnné nebo databázovému ovládacímu prvku.
  • Přiřazení může být:
    • jednoduché (jedna hodnota),
    • nebo pomocí matematického výrazu (sčítání, odečítání, násobení, dělení).
  • Pokud je proměnná polem hodnot, početní operace se provádějí nad všemi jejími prvky.
  • Při přiřazení hodnoty pole do databázového ovládacího prvku se použije pouze první hodnota pole.
  • Pokud pole neobsahuje žádný prvek nebo je hodnota „null“, uloží se do ovládacího prvku databázová hodnota „null“.

Cyklus

  • Cyklus slouží k postupnému zpracování prvků pole hodnot.
  • Počet iterací cyklu odpovídá počtu prvků řídící proměnné.
  • Pokud pole neobsahuje žádné prvky, cyklus se neprovede ani jednou.

Chování proměnných v cyklu:

  • Během jedné iterace se proměnná chová jako jednoprvková.
  • Po skončení cyklu se proměnná opět chová jako pole hodnot.
  • Prvky s hodnotou „null“ jsou v cyklu automaticky přeskočeny.
  • Pokud bylo více proměnných načteno jedním databázovým dotazem, jsou v cyklu procházeny synchronně.
  • Jako řídící proměnná cyklu se doporučuje používat primární klíč „id“.

Porovnávání hodnot

  • Ve skriptu je možné porovnávat hodnoty dvou proměnných.
  • Pokud je některá z proměnných polem hodnot, porovnává se pouze její první hodnota.

Operátor „obsahuje“:

  • U pole hodnot testuje, zda pole obsahuje konkrétní hodnotu.
  • U textového řetězce testuje, zda řetězec obsahuje daný podřetězec.

Konverze datových typů

  • Datový typ hodnoty lze změnit jejím přiřazením do proměnné s jiným datovým typem.
  • Zápis proměnné v poli cílového typu provede konverzi hodnoty.

Příklad převodu čísla na text:

  • proměnná typu Integer je přiřazena do proměnné typu String

Příklad převodu textu na číslo:

  • proměnná typu String je přiřazena do proměnné typu Integer

Typické chyby při práci s proměnnými

  • Proměnná nebyla deklarována před použitím.
  • Autor skriptu očekává jednu hodnotu, ale proměnná je pole hodnot.
  • Hodnota „null“ není ošetřena v následném zpracování.
  • V cyklu je jako řídící proměnná použita proměnná, která obsahuje hodnoty „null“.