×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




no, types weren't the problem...

this didn't work...though the documentation seems to say it should...

DB2Command cmd = conn.CreateCommand();
String procCall = "CALL EIS.PRINT_HARDCARDS (@enterprise,
@company, @ro_number)";
cmd.CommandType = CommandType.Text;
cmd.CommandText = procCall;

// Register input-output and output parameters for the
DB2Command
cmd.Parameters.Add(new DB2Parameter("@enterprise", "DQAB"));
cmd.Parameters.Add(new DB2Parameter("@company", "BH1"));
cmd.Parameters.Add(new DB2Parameter("@ro_number", " 6045628"));


But this did
DB2Command cmd = conn.CreateCommand();
String procCall = "CALL EIS.PRINT_HARDCARDS
(enterprise=>@enterprise, company=>@company, ro_number=>@ro_number)";
cmd.CommandType = CommandType.Text;
cmd.CommandText = procCall;

// Register input-output and output parameters for the
DB2Command
cmd.Parameters.Add(new DB2Parameter("@enterprise", "DQAB"));
cmd.Parameters.Add(new DB2Parameter("@company", "BH1"));
cmd.Parameters.Add(new DB2Parameter("@ro_number", " 6045628"));


I'm going to play around more with it...

Charles




On Fri, May 18, 2018 at 3:00 PM, Hiebert, Chris <
chris.hiebert@xxxxxxxxxxxxxx> wrote:

This might be an issue with type.

If the prepare statement is being provided as a string, then the query may
also need you to specify types.
This is so the engine can match the interface to the one you are expecting.

"CALL MYLIB.MYSP( CAST( ? AS CHAR(10)), CAST( ? AS DEC(3,0)), CAST( ? AS
VARCHAR(1024)) )"


Chris Hiebert
Senior Programmer/Analyst
Disclaimer: Any views or opinions presented are solely those of the author
and do not necessarily represent those of the company.


-----Original Message-----
From: MIDRANGE-L [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of
Charles Wilt
Sent: Tuesday, May 15, 2018 11:36 AM
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx>
Subject: Calling Db2 for i stored proc with Named parameters from C# using
Db2 connect .NET driver

All,

Has anybody got a exmaple of calling a Db2 for i stored procedure with
named parameters from a C# app using the Db2 connect .NET driver?

We've tried a few ways, but we keep seeing a Sqlstate => 42884 - No routine
was found with the specified name and compatible arguments.

with a performance monitor running, I can see that the "PREPARE" call is
being done without using parameter names.
PREPARE "CALL MYLIB.MYSP(?,?,?)

instead of
PREPARE "CALL MYLIB.MYSP(p1=>?,p2=>?,p3=>?)"

I'm not the .NET guy having the issue, I'm the guy that wrote the SP and is
trying to help. :)

Thanks!
Charles
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/midrange-l.

Please contact support@xxxxxxxxxxxx for any subscription related
questions.

Help support midrange.com by shopping at amazon.com with our affiliate
link: http://amzn.to/2dEadiD


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.