Avatar billede ulrikn Nybegynder
24. september 2009 - 12:01 Der er 4 kommentarer og
1 løsning

Stored procedure / Scope_identity

Hej

Jeg sidder og roder med nogle stored procedures, som jeg ikke selv har lavet og heller ikke skal pille i.

Kort fortalt er det en procedure der smider en ordre i et regnskabsprogram, og returnerer id ( vil jeg tro ).

Sidste linie hedder :
SELECT SCOPE_IDENTITY()
Mit problem er at jeg ikke har nogen anelse om hvordan jeg læser værdien.

Har set eksempler hvor det hedder noget ala :
SELECT @ReturnValue as SCOPE_IDENTITY()
Det kan jeg lidt bedre se meningen med da det jo giver en parameter at arbejde med.

Nogen der har nogen bud ?
... og som sagt så ændrer jeg ikke i SP.

På forhånd tak
Ulrik
Avatar billede softspot Forsker
24. september 2009 - 12:16 #1
Du kan f.eks. aflæse værdien af den første med et kald til CommandObjekt.ExecuteScalar() (hvis ellers SELECT SCOPE_IDENTITY() er den eneste datareturnerende sætning i din SP).
Avatar billede ulrikn Nybegynder
24. september 2009 - 12:40 #2
Det var lige præcis det der skulle til :)
Takker, smider du lige et svar ?
Avatar billede softspot Forsker
24. september 2009 - 12:49 #3
Velbekomme :-)
Avatar billede softspot Forsker
24. september 2009 - 13:08 #4
Tak for point :-)
Avatar billede arne_v Ekspert
26. september 2009 - 02:50 #5
Lidt forklaring:

Man kan returnere data fra en SP på 3 forskellige måder:
- result sets
- return code
- out parametre

SELECT ....

returnerer et result set.

Generelt læser man result set med en data reader.

A la:

        rdr = cmd.ExecuteReader();
        while(rdr.Read())
        {
            ...
        }
        rdr.NextResult();
        while(rdr.Read())
        {
            ...
        }
        rdr.NextResult();
        while(rdr.Read())
        {
            ...
        }

Men i dette tilfælde med et result sæt med en række med en kolonne kan man bruge ExecuteScalar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester