4.9. Procedury

Slouží částečně k programování SQL Serveru. Je to vlastně jakýsi skript - přesněji řečeno dávka - která je uložena přímo v databázi. Procedury mohou obsahovat vstupní parametry, výstupní parametry a návratové hodnoty. Programování se uskutečňuje pomocí jazyka T-SQL (Transact SQL). Ukážeme si tedy dvě jednoduché ukázky.

Příklad 1: Tato ukázka nám odstraní z tabulek vybrané auto včetně všech oprav, které na tomto autě byly provedeny.
Obr_29.jpg(66 kb)

Obrázek 29 - Dialogové okno vytvoření nové procedury

První řádek kódu nám zakládá novou proceduru s názvem OdstranneniAuta. Na dalším zadáváme název parametru jako číselnou proměnnou (typu integer). Následují SQL příkazy pro odstranění záznamů.

Chceme-li tuto proceduru odzkoušet musíme použít další z grafických nástrojů SQL Serveru - Query Analyzer. Ten spustíme buď přímo z nabídky Start -> Programy -> Microsoft SQL Server -> Query Analyzer, nebo klepnutím myši v prostředí Enterprise Manager na nabídku Tols a následným vybráním ze seznamu SQL Query Analyzer.

Obr_30.JPG(20 kb)

Obrázek 30 - Enterprise Manager - spuštění SQL Query Analyzeru

Příkaz EXEC spustí proceduru s názvem OdstraneniAuta a číslice 1 je vstupní proměnná pro číslo záznamu (autID) v tabulce Auta, který bude odstraněn.

Obr_31.jpg(24 kb)

Obrázek 31 - Query Analyzer - zadání příkazu pro spuštění procedury

Příklad 2: Tento příklad nám ukáže jak provést jednoduchou kontrolu počtu oprav na námi vybraném autě.

Na začátku vytváříme proceduru s názvem KontrolaPoctuOprav. Dále pokračujeme výčtem názvů parametrů a jejich datových typů. Klíčové slovo OUTPUT udává, že jde o výstupní parametr. Pomocí SQL dotazu přiřadíme proměnné @ulozenyPocet hodnotu uloženou v tabulce Auta. Druhý SQL dotaz využívá funkci Count, která nám vrátí počet záznamů v tabulce Oprav vyhovující podmínce (WHERE). Tento počet přiřazujeme proměnné @skutecnyPocet. Nakonec obě proměnné porovnáváme a vypíšeme příslušnou odpověď.

Chceme-li nyní tuto proceduru vyzkoušet, musíme stejně jako u předchozího příkladu spustit grafický nástroj Query Analyzer. Z rozbalovacího seznamu opět vybereme příslušnou databázi a do textové části zapíšeme následující příkazy:

DECLARE @ulozenyPocet int
DECLARE
@skutecnyPocet int
EXEC
KontrolaPoctuOprav 2, @ulozenyPocet OUTPUT, @skutecnyPocet OUTPUT

Protože používáme výstupní parametry, musíme proměnné deklarovat nejen v uložené proceduře, ale také při jejím volání. Po spuštění proběhne kontrola záznamu s identifikačním číslem dva (autID) v tabulce Auta a zobrazí se výsledek.

<Předcházející stránka    Další stránka>