Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Petr Kasnal
Člen
Avatar
Petr Kasnal:12.6.2018 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.6.2018 14:16
Avatar
Odpovídá na Petr Kasnal
Petr Štechmüller:12.6.2018 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.6.2018 14:26
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
termostat
Člen
Avatar
termostat:12.6.2018 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.6.2018 14:37
Avatar
Petr Kasnal
Člen
Avatar
Odpovídá na termostat
Petr Kasnal:13.6.2018 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.6.2018 9:24
Avatar
Odpovídá na Petr Kasnal
Petr Štechmüller:13.6.2018 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.6.2018 9:33
Nahoru Odpovědět
13.6.2018 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.