Toon posts:

[SQL Server / VB.Net] Output variabele

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo mede tweakers,
ik heb voor mijn applicatie een stored procedure gemaakt.
Die insert de data en moet dan de key (@@identity) terug geven.

Ik maak dus in het begin van mijn procedure de parameters aan,
die ik in wil vullen, en die eruit komt:
code:
1
2
    @Test   varchar(50),
    @ID int OUTPUT

Maar nu is het probleem,
ik moet in mijn SQLCommand persee alle 4 de parameters meegeven.
Dat doe ik dus netjes..
Alleen kan ik de @ID niet leeg laten, anders geeft ie een fout.

In de stored procedure (transaction) doe ie dit :
code:
1
2
SELECT
    @ID = @@Identity


Maar ik krijg nu dezelfde waarde terug van @ID als, die ik meegegeven heb met het preparen.

Wat doe ik verkeerd ??

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:37
Hoezo? Als je Id uitleest, is die opnieuw de waarde die je ze gegeven hebt..... vreemd.

Wat is het type van die parameter? Je hebt hem in je SP wel als output parameter gemarkeerd, maar, heb je dat ook in je .NET code gedaan?

https://fgheysels.github.io/


Verwijderd

Probeer eens SET te gebruiken ipv select, anders returned ie een recordset

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:37
Wat je moet doen is, bij het maken van je parameter object in .NET, de direction in je constructor opnemen:

code:
1
SqlParameter pa = new SqlParameter ("naam", SqlDbType.Int, 0, ParameterDirection.InputOutput, ....)

https://fgheysels.github.io/


Verwijderd

whoami schreef op 20 februari 2003 @ 12:10:
Wat je moet doen is, bij het maken van je parameter object in .NET, de direction in je constructor opnemen:

code:
1
SqlParameter pa = new SqlParameter ("naam", SqlDbType.Int, 0, ParameterDirection.InputOutput, ....)
Dat altijd maar zolang je een select doet in je stored procedure returned ie gewoon een recordset of zelfs 2 recordsets als je nog andere selects doet in de stored procedures.

Verwijderd

Topicstarter
De parameters die ik in mijn SP heb aangemaakt zijn zoals ik het aangegeven in het 1e code blok.

Ik MOET de @ID parameter meegeven aan mijn SQLCommand, en moet em ook een waarde geven anders krijg ik een foutmelding.

Maar ik krijg dus niet de nieuwe id (@@identity) terug

Verwijderd

Probeer eens:

@Test varchar(50),
@ID int NULL OUTPUT

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:37
Ik heb het nog zo gedaan, met een SELECT, en het heeft altijd gewerkt. Geef gewoon aan dat in je .net code dat die parameter inputoutput is.

Ik heb het dus over je VB.NET of C# code bojo.

https://fgheysels.github.io/


Verwijderd

Topicstarter
GVD, zie het nu zelf net staan..........
code:
1
myParameter.Direction = ParameterDirection.Output


Toch bedankt

[ Voor 5% gewijzigd door Verwijderd op 20-02-2003 12:16 ]

Pagina: 1