[Oracle/C#]outputparam uitlezen icm met 2 refcursor

Pagina: 1
Acties:

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
Hallo,

Ik heb een oracle stored proc die ik aanroep.
Deze geeft 2 refcursors terug.

Deze stop ik in een dataset dmv een oracledataadapter.

Dit werkt allemaal prima.

Nu heeft deze stored proc ook nog een output param (number) die ik graag uitwil lezen.

Hoe kan ik dat doen?

aanroep:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "idb_cpr.get_datasets";
cmd.Parameters.Add("o_returnwaarde", OracleType.Number).Direction = ParameterDirection.Output;
//int test = Convert.ToInt32(cmd.Parameters["o_returnwaarde"].Value);
cmd.Parameters.Add("p_inlognaam", OracleType.VarChar).Value = userpreferences.Inlognaam;
cmd.Parameters.Add("p_omroep", OracleType.VarChar).Value

....
....
....
cmd.Parameters.Add("o_ds_details", OracleType.Cursor).Direction = ParameterDirection.Output;
cmd.Parameters.Add("o_ds_geaggregeerd", OracleType.Cursor).Direction = ParameterDirection.Output;
conn.Open();
OracleDataAdapter oraDa = new OracleDataAdapter(cmd);
           
DataSet ds = new DataSet();
oraDa.Fill(ds);


dit werkt prima.

nu wil ik dus ook de param p_returnwaarde uitlezen

ik heb dit al geprobeerd maar dat werkt niet
C#:
1
int nummer = Convert.ToInt32(cmd.Parameters["o_returnwaarde"].Value);


maar geeft hij een null terug

Ik kan wel voorbeelden vinden van output params met datareaders of meerdere ref cursors maar die combinatie kan ik nergens vinden.

ik hoop dat jullie me verder kunnen helpen.

[ Voor 8% gewijzigd door 4of9 op 07-06-2006 14:53 ]

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • __fred__
  • Registratie: November 2001
  • Laatst online: 20-02 11:54
Voer deze regel code eens uit Na de fill:

C#:
1
int nummer = Convert.ToInt32(cmd.Parameters["o_returnwaarde"].Value);

[ Voor 14% gewijzigd door __fred__ op 07-06-2006 15:02 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:53
Je moet je parameter als output parameter definieren als je 'm toevoegt aan je Parameters collectie.
In .NET 1.x kan je dat enkel doen door gebruik te maken van de Add method v/d Parameters collectie die een Parameter object als argument heeft. De Parameter class heeft een constructor die je laat specifieren of het een input of een output parameter is.

Dat doe je dus al. :+

Ben je er zeker van dat je die parameter opvult in je SP ?

[ Voor 12% gewijzigd door whoami op 07-06-2006 15:05 ]

https://fgheysels.github.io/


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
na de fill werkt hij idd!

Ik had hem zo'n beetje overal gezet behalve daar :o

dank je!

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:53
8)7
ja, da's best logisch idd; aangezien je SP pas dan uitgevoerd wordt.

https://fgheysels.github.io/