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“.