Pom11: Porovnání verzí

Z Prirucky
(Stránka vyprázdněna)
Řádek 1: Řádek 1:
'''Stored procedure (Generátor sestav II)'''


Generátor sestav ve volbě (sql definice) podporuje zpracování jen určitých '''standardizovaných''' příkazů .sql.
Nepodporuje zpracování '''rozšířených příkazů''' ze sad daných databázových serverů, např. TRANSACT SQL (Microsoft SQL server).
Nicméně částečně toto lze obejít tím, že se příkazy uloží do ''stored procedure'' a generátor je uzpůsoben na možnost zavolání (vykonání) takové procedury.
Postup:
1. Vytvoření '''stored procedure''' v dané databázi.
2. Vytvoření [[Generátor sestav II (nová definice SQL)|nové definice sql]], která obsahuje '''volání procedury''', např.
execute dbo.sp_smeny
<small>dbo představuje konkrétního vlastníka</small>
== Odkazy ==
* [[Generátor sestav II (nová definice SQL)]]
* [[Generátor sestav II]]
* <small>Helpdesk id 27003</small>
<!--
AWT – id 27003 – Petr H
Požadavek: Nepovolený sql příkaz
Dobrý den,
generátor sestav je vytvořen na generování sestav z sql příkazů ne komplexního TRANSACT SQL scriptu.Nicméně byla provedena
úprava, která umožní volat stored procedure z generátoru sestav. Vámi požadovaný script prosím vložte do stored procedure a
v generátoru sestav do pole pro zadání SQL příkazu napište volání procedury, např: execute dbo.sp_smeny
Při tomto postupu nelze na výslednou sestavu aplikovat práva na osobní čísla.
Adam Fišer: AWT
1. sloupec: osobní číslo
2 až n-tý sloupec: kódy směn z číselníku (např. 1,2,3,A,B,C,D,K,Př.)
hodnoty: počet hodin z agendy Pořizování směn
--------------------------------------------------------------------
DECLARE @cols NVARCHAR(2000)
SELECT @cols = COALESCE(@cols + ',[' + smena + ']'
,'[' + smena + ']')
FROM smen_kody
ORDER BY smena
/*print @cols*/
DECLARE @sqlToRun varchar(1000)
SET @sqlToRun = '
SELECT * FROM
(
select
os_cislo,
hodiny,
smena
FROM
smenovnice
LEFT OUTER JOIN smen_mzd_pol ON (smenovnice.id_smen_pol = smen_mzd_pol.id)
LEFT OUTER JOIN smen_kody ON (smen_mzd_pol.id_smeny = smen_kody.id)
) as s
PIVOT (
SUM (hodiny)
FOR smena IN ( '+@cols+' )
) as spivot'
EXEC (@sqlToRun)

Verze z 10. 4. 2015, 15:42

Stored procedure (Generátor sestav II)

Generátor sestav ve volbě (sql definice) podporuje zpracování jen určitých standardizovaných příkazů .sql.

Nepodporuje zpracování rozšířených příkazů ze sad daných databázových serverů, např. TRANSACT SQL (Microsoft SQL server).

Nicméně částečně toto lze obejít tím, že se příkazy uloží do stored procedure a generátor je uzpůsoben na možnost zavolání (vykonání) takové procedury.


Postup:

1. Vytvoření stored procedure v dané databázi.

2. Vytvoření nové definice sql, která obsahuje volání procedury, např.

execute dbo.sp_smeny

dbo představuje konkrétního vlastníka

Odkazy