Java týden Java týden
Aprílový black friday tě nenechá v klidu! Až 80 % prémiového obsahu zdarma. Více informací
Pouze tento týden slevy až 80 % na programování v Javě

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.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
Petr Štechmüller
Překladatel
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
Petr Štechmüller
Překladatel
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.