Akce! Dobij si body, napiš nám do zpráv "Přes léto se to naučím!" a dobijeme ti ještě navíc 50% z této částky! Sleva na výuku platí do 22.6.2018.

Diskuze: Výstupní parametry z procedury

Ostatní jazyky SQL SQL a databáze Výstupní parametry z procedury

Aktivity (1)
Avatar
Petr Kasnal
Člen
Avatar
Petr Kasnal:12. června 14:16

Zdrávím programuji v .net mvc a mám vlastní procedury, které pracují s DB. Píšu je v sql. Chtěl bych si udělat generátor, ale nevím jak vytáhnout výstupní parametry z procedury. Nevíte prosím někdo jak toho dosáhnout ? Budu rád za jakoukoli pomoc. :)

Zkusil jsem: Zkoušel jsem hledat na googlu našel jsem jak dostat vstupní parametry ale o výstupních jsem nic nenašel.... Předpokládam, že pro to bude nějaká systemová procedura.

Chci docílit: Chtěl bych si udělat generátor, ale nevím jak vytáhnout výstupní parametry z procedury.

 
Odpovědět 12. června 14:16
Avatar
Odpovídá na Petr Kasnal
Petr Štechmüller:12. června 14:26
Ahoj, obecně v programování platí, že
procedura pouze zpracuje data, ale nic nevraci
funkce je procedura, která zpracuje data ale ještě vrátí nějaký výsledek

V některých databázích se to rozlišuje. Takže bych hledal, jak vytvořit funkci ve tvé databázi.
Pokud dedukuji dobře, tak se asi jedná o MS-SQL, tak zkus tento link.

Nahoru Odpovědět 12. června 14:26
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
termostat
Člen
Avatar
termostat:12. června 14:37

Ptáš ne na to jak napsat tu proceduru v SQL, nebo spíš jak jí správně zavolat v .NET ?
Předpokládám, že k volání procedury používáš SqlCommand, nebo nějakou jinou třídu odvozenou od IDbCommand.
Pak ještě záleží, co ta procedura vrací, zda jde o skalár, nebo tabulku.
Podle toho pak zavoláš buď něco jako

command.CommandType = System.Data.CommandType.StoredProcedure;
var vysledek = command.ExecuteScalar();

nebo něco jako

command.CommandType = System.Data.CommandType.StoredProcedure;
var reader = command.ExecuteReader();
while (reader.Read())
{
    Console.WriteLine(String.Format("{0}", reader[0]));
}

ale možná se ptáš na něco úplně jiného :)

 
Nahoru Odpovědět 12. června 14:37
Avatar
Petr Kasnal
Člen
Avatar
Odpovídá na termostat
Petr Kasnal:13. června 9:24

Děkuji za Vaše rady, ale asi jsem se špatně vyjádřil. Programovat v MS_SQL procedury umím, stejně tak umím vytvořit funkci a provolat to v c#. Já mám ale problém, že nevím jak v té proceduře docílit toho, aby mi nějaký způsobem vrátila výstupní sloupce.
Řekněme, že mám proceduru, která mi normálně vrací nějaké řádky a jde třeba o sloupce Name, Age, Description. A já bych nějak chtěl, aby mi ta porcedura nevracela ty řádky ale info o těch sloupcích. Jejich jméno, datový typ atd. atd. díky za každo radu :)

 
Nahoru Odpovědět 13. června 9:24
Avatar
Odpovídá na Petr Kasnal
Petr Štechmüller:13. června 9:31

Aha, tak to je úplně jiná situace. To co Ty hledáš se nazývá table schema. Tento link by ti měl dát odpověď.

Editováno 13. června 9:33
Nahoru Odpovědět 13. června 9:31
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.