Provedení SQL procedury, která vrací hodnotu   zodpovězená otázka

SQL, Databáze

V MSSQL serveru jsem si udělal (stored) proceduru, která vloží řádek do tabulky (s autoincrement) a vrátí jeho ID. Vypadá cca takto:

...
INSERT tabulka(slopec) VALUES @Parametr;
SELECT SCOPE_IDENTITY()

Když proceduru vykonám v MSSQL, provede se insert a vrátí mi to ID řádku, vše je tedy OK.

Spustil jsem tedy VS a pomocí "configure Data Source with Wizard" jsem danou proceduru přidal do .xsd, neuloží se mi ale do QeriesTableAdapteru jako ostatní procedury, ale udělá si vlastní tabulku se sloupcem column1 a pod ním TableAdapter s metodami Fill a GetData. Jak mám teď tuto proceduru provést v kódu, aby "odchytila" hodotu co vrací. Bohužel jsem nic nevygooglil (možná se špatně ptám) ani jsem na nic nepřišel metodou pokus-omyl.

Za jakékoli nakopnutí tedy budu moc rád

Díky

J.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak jsem to nakonec vyřešil tak, že jsem do stored procedury na SQLSERVERU přidal parametr OUTPUT a do něj uvnitř té procedury tu hodnotu SCOPE_IDENTITY.

Pak se procedura objeví standartně v QueriesTableAdapteru a před jejím použitím si vytvořím proměnu typu integer, tu pak vložím na místo toho output parametru (který je ve VS ByRef), takže mi do ní procedura vrátí tu hodnotu ze serveru.

Nicméně pokud by někdo věděl odpověď na můj předchozí dotaz (ne jen jak to obejít :) ), tak bude rád.

J.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Je nutné nastavit v rámci procedury proměnnou OUTPUT,která se bude následně plnit výstupní hodnotou a bude tak čitelná i v rámci kódu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nebo použít klausuli "RETURN"...

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback