Glenn,
The solution that I provided Tom is based on first hand knowledge, not
simply an interpretation of the manual. The code sample that I provided
using i5_paramdesc( ) was based on code that Tom said was correctly
executing his stored procedure but wasn't returning a result. The number
of parameters described and the specific descriptions would be unique to
that particular stored procedure.
Here is the code once again.
$statuscode='XX';
$qUpdateCustomer = "CALL NEWJCLIB/PROC_JC15_SL( ? )";
$request = i5_prepare( $qUpdateCustomer );
if( !$request ) var_dump( i5_error( ) );
$paramDesc = i5_paramdesc( $request, I5_TYPE_CHAR, 0, 5, 0, I5_INOUT
); // I guessed at 5 for the length
if( !$paramDesc ) var_dump( i5_error( ) );
$paramSet = i5_setparam( $request, 0, $statuscode );
if( !$paramSet ) var_dump( i5_error( ) );
$procExec = i5_execute( $request );
if( !$procExec ) var_dump( i5_error( ) );
$stuff = i5_fetch_assoc( $request );
var_dump( $stuff );
We established earlier in the thread that Tom was making a proper working
connection via i5_connect( ). With the code sample above I'm assuming that
Tom's stored procedure is defined with an input/output parameter of data
type CHAR. I guessed a length of five and commented on my guess in case
the actual length is two, etc.
Regards,
Alfred
--
Alfredo Delgado
6800 Broken Sound Pkwy, Suite 150
Boca Raton, Florida 33487
-----web400-bounces@xxxxxxxxxxxx wrote: -----
To: Web Enabling the AS400 / iSeries <web400@xxxxxxxxxxxx>
From: Glenn Hopwood <ghopwood.list@xxxxxxxxx>
Sent by: web400-bounces@xxxxxxxxxxxx
Date: 04/15/2010 10:55
Subject: Re: [WEB400] MAJOR information leaked out in TFM
Alfredo,
Did you get your code to work? I tried yours and the code shown here (1)
that both include the i5_paramdesc() function and I still couldn't get a
result set returned.
(1) [1]
http://files.zend.com/help/Zend-Core-i5/i5_php_connector_api.htm
Glenn
On 4/15/2010 10:36 AM, ADelgado@xxxxxxxxxxxxxxxxxx wrote:
> It seems like you missed the point about describing the parameters
so that
> you can get at your output.
> --
> Alfredo Delgado
> 6800 Broken Sound Pkwy, Suite 150
> Boca Raton, Florida 33487
>
> -----web400-bounces@xxxxxxxxxxxx wrote: -----
>
> To: "'Web Enabling the AS400 / iSeries'"<web400@xxxxxxxxxxxx>
> From: "Tom Deskevich"<thomas.l.deskevich@xxxxxxxxxxxxx>
> Sent by: web400-bounces@xxxxxxxxxxxx
> Date: 04/15/2010 10:21
> Subject: Re: [WEB400] MAJOR information leaked out in TFM
>
> Sorry I am up to my ear lobes in alligators with my 'real' job
today.
> But I think this is pretty much what I am doing.
> I did see it.
>
> -----Original Message-----
> From: web400-bounces@xxxxxxxxxxxx
> [[1][2]mailto:web400-bounces@xxxxxxxxxxxx]
> On Behalf Of ADelgado@xxxxxxxxxxxxxxxxxx
> Sent: Thursday, April 15, 2010 9:28 AM
> To: Web Enabling the AS400 / iSeries
> Subject: Re: [WEB400] MAJOR information leaked out in TFM
>
> Did you miss this yesterday?
>
> [2][3]
http://archive.midrange.com/web400/201004/msg00096.html
> --
> Alfredo Delgado
> 6800 Broken Sound Pkwy, Suite 150
> Boca Raton, Florida 33487
>
> -----web400-bounces@xxxxxxxxxxxx wrote: -----
>
> To: "'Web Enabling the AS400 /
iSeries'"<web400@xxxxxxxxxxxx>
> From: "Tom Deskevich"<thomas.l.deskevich@xxxxxxxxxxxxx>
> Sent by: web400-bounces@xxxxxxxxxxxx
> Date: 04/15/2010 09:13
> Subject: Re: [WEB400] MAJOR information leaked out
> aboutthefutureofPHPinmeeting I attended.
>
> $qUpdateCustomer = "CALL NEWJCLIB/PROC_JC15_ALL( )";
> $request = i5_prepare( $qUpdateCustomer );
> if( !$request ) var_dump( i5_error( ) );
> $procExec = i5_program_call( $request, array() );
> if( !$procExec ) var_dump( i5_error( ) );
> $stuff = i5_fetch_assoc( $request );
> var_dump($stuff) ;
>
> I am to take array() literally?
>
> Or are you telling me to define an array and pass it as a
> parmameter?
> array(8) { [0]=> int(258) [1]=> int(9) [2]=> string(21)
"Bad
> connection
> handle" [3]=> string(0) "" ["num"]=> int(258) ["cat"]=>
int(9)
> ["msg"]=>
> string(21) "Bad connection handle" ["desc"]=> string(0) ""
}
>
> -----Original Message-----
> From: web400-bounces@xxxxxxxxxxxx
> [[1][3][4]mailto:web400-bounces@xxxxxxxxxxxx]
> On Behalf Of Kevin Schroeder
> Sent: Thursday, April 15, 2010 8:44 AM
> To: Web Enabling the AS400 / iSeries
> Subject: Re: [WEB400] MAJOR information leaked out
> aboutthefutureofPHPinmeeting I attended.
>
> Try
>
> $procExec = i5_program_call( $request, array() );
>
> Kevin Schroeder
> Technology Evangelist
> Zend Technologies, Ltd.
> www.zend.com
> www.twitter.com/kpschrade
> www.eschrade.com
>
> -----Original Message-----
> From: web400-bounces@xxxxxxxxxxxx
> [[2][4][5]mailto:web400-bounces@xxxxxxxxxxxx]
> On Behalf Of Tom Deskevich
> Sent: Thursday, April 15, 2010 7:40 AM
> To: 'Web Enabling the AS400 / iSeries'
> Subject: Re: [WEB400] MAJOR information leaked out about
> thefutureofPHPinmeeting I attended.
>
> Ok, you switched me from i5_execute to i5_program_call
>
> Here is my code:
>
> $qUpdateCustomer = "CALL NEWJCLIB/PROC_JC15_ALL( )";
> $request = i5_prepare( $qUpdateCustomer );
> if( !$request ) var_dump( i5_error( ) );
> $procExec = i5_program_call( $request );
> if( !$procExec ) var_dump( i5_error( ) );
> $stuff = i5_fetch_assoc( $request );
> var_dump($stuff) ;
>
> I get this:
>
> array(8) { [0]=> int(263) [1]=> int(9) [2]=> string(51)
"Wrong
> parameter
> count for i5_program_call function " [3]=> string(0) ""
["num"]=>
> int(263) ["cat"]=> int(9) ["msg"]=> string(51) "Wrong
parameter
> count
> for i5_program_call function " ["desc"]=> string(0) ""
>
> -----Original Message-----
> From: web400-bounces@xxxxxxxxxxxx
> [[3][5][6]mailto:web400-bounces@xxxxxxxxxxxx]
> On Behalf Of Kevin Schroeder
> Sent: Thursday, April 15, 2010 8:21 AM
> To: Web Enabling the AS400 / iSeries
> Subject: Re: [WEB400] MAJOR information leaked out about
the
> futureofPHPinmeeting I attended.
>
> Nope. What you are doing is taking the "prepare" resource
and
> trying to
> get the result from that. What I believe you want to be
doing is
> taking
> the "execute" resource and extracting the result from
there.
>
> However, the example that I see in the docs that uses
> i5_fetch_assoc()
> seem to use i5_program_prepare and not i5_prepare. If that
is the
> case
> your code should look something like
>
> $request = i5_program_prepare( $qUpdateCustomer );
> i5_program_call( $request );
> $stuff = i5_fetch_assoc( $request );
>
> If I were to venture a guess it looks like you might have
combined
> the
> i5_prepare/execute code with the i5_program_prepare/call
logic.
>
> Kevin Schroeder
> Technology Evangelist
> Zend Technologies, Ltd.
> www.zend.com
> www.twitter.com/kpschrade
> www.eschrade.com
>
> -----Original Message-----
> From: web400-bounces@xxxxxxxxxxxx
> [[4][6][7]mailto:web400-bounces@xxxxxxxxxxxx]
> On Behalf Of Tom Deskevich
> Sent: Thursday, April 15, 2010 7:04 AM
> To: 'Web Enabling the AS400 / iSeries'
> Subject: Re: [WEB400] MAJOR information leaked out about
the future
> ofPHPinmeeting I attended.
>
> I think you meant to put the WAS on the next line down?
>
> -----Original Message-----
> From: web400-bounces@xxxxxxxxxxxx
> [[5][7][8]mailto:web400-bounces@xxxxxxxxxxxx]
> On Behalf Of Kevin Schroeder
> Sent: Thursday, April 15, 2010 7:42 AM
> To: Web Enabling the AS400 / iSeries
> Subject: Re: [WEB400] MAJOR information leaked out about
the future
> of
> PHPinmeeting I attended.
>
> Maybe I'm missing something here but shouldn't it be
>
> $qUpdateCustomer = "CALL NEWJCLIB/PROC_JC15_ALL( )";
> $request = i5_prepare( $qUpdateCustomer );
> if( !$request ) var_dump( i5_error( ) );
> $procExec = i5_execute( $request );
> if( !$procExec ) var_dump( i5_error( ) );
> $stuff = i5_fetch_assoc( $procExec );<-- Was
> i5_fetch_assoc( $request );
> var_dump($stuff) ;
>
> Here is my code:
> $qUpdateCustomer = "CALL NEWJCLIB/PROC_JC15_ALL( )";
> $request = i5_prepare( $qUpdateCustomer );
> if( !$request ) var_dump( i5_error( ) );
> $procExec = i5_execute( $request );
> if( !$procExec ) var_dump( i5_error( ) );
> $stuff = i5_fetch_assoc( $request );<<== already
has
> $request
> var_dump($stuff) ;
>
> ANYWAY, I changed it to what I think you meant ($procexec)
and now
> I get
> bool(false) shown.
>
> Tom Deskevich
> Insane with anger.
>
> --
> This is the Web Enabling the AS400 / iSeries (WEB400)
mailing list
> To post a message email: WEB400@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit:
[6][8][9]
http://lists.midrange.com/mailman/listinfo/web400
> or email: WEB400-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at [7][9][10]
http://archive.midrange.com/web400.
>
> --
> This is the Web Enabling the AS400 / iSeries (WEB400)
mailing list
> To post a message email: WEB400@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit:
[8][10][11]
http://lists.midrange.com/mailman/listinfo/web400
> or email: WEB400-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at [9][11][12]
http://archive.midrange.com/web400.
>
> --
> This is the Web Enabling the AS400 / iSeries (WEB400)
mailing list
> To post a message email: WEB400@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit:
[10][12][13]
http://lists.midrange.com/mailman/listinfo/web400
> or email: WEB400-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at [11][13][14]
http://archive.midrange.com/web400.
>
> --
> This is the Web Enabling the AS400 / iSeries (WEB400)
mailing list
> To post a message email: WEB400@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit:
[12][14][15]
http://lists.midrange.com/mailman/listinfo/web400
> or email: WEB400-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at [13][15][16]
http://archive.midrange.com/web400.
>
> --
> This is the Web Enabling the AS400 / iSeries (WEB400)
mailing list
> To post a message email: WEB400@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit:
[14][16][17]
http://lists.midrange.com/mailman/listinfo/web400
> or email: WEB400-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at [15][17][18]
http://archive.midrange.com/web400.
>
> References
>
> Visible links
> 1. [18][19]mailto:web400-bounces@xxxxxxxxxxxx
> 2. [19][20]mailto:web400-bounces@xxxxxxxxxxxx
> 3. [20][21]mailto:web400-bounces@xxxxxxxxxxxx
> 4. [21][22]mailto:web400-bounces@xxxxxxxxxxxx
> 5. [22][23]mailto:web400-bounces@xxxxxxxxxxxx
> 6. [23][24]
http://lists.midrange.com/mailman/listinfo/web400
> 7. [24][25]
http://archive.midrange.com/web400
> 8. [25][26]
http://lists.midrange.com/mailman/listinfo/web400
> 9. [26][27]
http://archive.midrange.com/web400
> 10. [27][28]
http://lists.midrange.com/mailman/listinfo/web400
> 11. [28][29]
http://archive.midrange.com/web400
> 12. [29][30]
http://lists.midrange.com/mailman/listinfo/web400
> 13. [30][31]
http://archive.midrange.com/web400
> 14. [31][32]
http://lists.midrange.com/mailman/listinfo/web400
> 15. [32][33]
http://archive.midrange.com/web400
> --
> This is the Web Enabling the AS400 / iSeries (WEB400) mailing
list
> To post a message email: WEB400@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: [33][34]
http://lists.midrange.com/mailman/listinfo/web400
> or email: WEB400-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at [34][35]
http://archive.midrange.com/web400.
>
> --
> This is the Web Enabling the AS400 / iSeries (WEB400) mailing
list
> To post a message email: WEB400@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: [35][36]
http://lists.midrange.com/mailman/listinfo/web400
> or email: WEB400-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at [36][37]
http://archive.midrange.com/web400.
>
> References
>
> Visible links
> 1. [38]mailto:web400-bounces@xxxxxxxxxxxx
> 2. [39]
http://archive.midrange.com/web400/201004/msg00096.html
> 3. [40]mailto:web400-bounces@xxxxxxxxxxxx
> 4. [41]mailto:web400-bounces@xxxxxxxxxxxx
> 5. [42]mailto:web400-bounces@xxxxxxxxxxxx
> 6. [43]mailto:web400-bounces@xxxxxxxxxxxx
> 7. [44]mailto:web400-bounces@xxxxxxxxxxxx
> 8. [45]
http://lists.midrange.com/mailman/listinfo/web400
> 9. [46]
http://archive.midrange.com/web400
> 10. [47]
http://lists.midrange.com/mailman/listinfo/web400
> 11. [48]
http://archive.midrange.com/web400
> 12. [49]
http://lists.midrange.com/mailman/listinfo/web400
> 13. [50]
http://archive.midrange.com/web400
> 14. [51]
http://lists.midrange.com/mailman/listinfo/web400
> 15. [52]
http://archive.midrange.com/web400
> 16. [53]
http://lists.midrange.com/mailman/listinfo/web400
> 17. [54]
http://archive.midrange.com/web400
> 18. [55]mailto:web400-bounces@xxxxxxxxxxxx
> 19. [56]mailto:web400-bounces@xxxxxxxxxxxx
> 20. [57]mailto:web400-bounces@xxxxxxxxxxxx
> 21. [58]mailto:web400-bounces@xxxxxxxxxxxx
> 22. [59]mailto:web400-bounces@xxxxxxxxxxxx
> 23. [60]
http://lists.midrange.com/mailman/listinfo/web400
> 24. [61]
http://archive.midrange.com/web400
> 25. [62]
http://lists.midrange.com/mailman/listinfo/web400
> 26. [63]
http://archive.midrange.com/web400
> 27. [64]
http://lists.midrange.com/mailman/listinfo/web400
> 28. [65]
http://archive.midrange.com/web400
> 29. [66]
http://lists.midrange.com/mailman/listinfo/web400
> 30. [67]
http://archive.midrange.com/web400
> 31. [68]
http://lists.midrange.com/mailman/listinfo/web400
> 32. [69]
http://archive.midrange.com/web400
> 33. [70]
http://lists.midrange.com/mailman/listinfo/web400
> 34. [71]
http://archive.midrange.com/web400
> 35. [72]
http://lists.midrange.com/mailman/listinfo/web400
> 36. [73]
http://archive.midrange.com/web400
--
This is the Web Enabling the AS400 / iSeries (WEB400) mailing list
To post a message email: WEB400@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: [74]
http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at [75]
http://archive.midrange.com/web400.
References
Visible links
1.
http://files.zend.com/help/Zend-Core-i5/i5_php_connector_api.htm
2. mailto:web400-bounces@xxxxxxxxxxxx
3.
http://archive.midrange.com/web400/201004/msg00096.html
4. mailto:web400-bounces@xxxxxxxxxxxx
5. mailto:web400-bounces@xxxxxxxxxxxx
6. mailto:web400-bounces@xxxxxxxxxxxx
7. mailto:web400-bounces@xxxxxxxxxxxx
8. mailto:web400-bounces@xxxxxxxxxxxx
9.
http://lists.midrange.com/mailman/listinfo/web400
10.
http://archive.midrange.com/web400
11.
http://lists.midrange.com/mailman/listinfo/web400
12.
http://archive.midrange.com/web400
13.
http://lists.midrange.com/mailman/listinfo/web400
14.
http://archive.midrange.com/web400
15.
http://lists.midrange.com/mailman/listinfo/web400
16.
http://archive.midrange.com/web400
17.
http://lists.midrange.com/mailman/listinfo/web400
18.
http://archive.midrange.com/web400
19. mailto:web400-bounces@xxxxxxxxxxxx
20. mailto:web400-bounces@xxxxxxxxxxxx
21. mailto:web400-bounces@xxxxxxxxxxxx
22. mailto:web400-bounces@xxxxxxxxxxxx
23. mailto:web400-bounces@xxxxxxxxxxxx
24.
http://lists.midrange.com/mailman/listinfo/web400
25.
http://archive.midrange.com/web400
26.
http://lists.midrange.com/mailman/listinfo/web400
27.
http://archive.midrange.com/web400
28.
http://lists.midrange.com/mailman/listinfo/web400
29.
http://archive.midrange.com/web400
30.
http://lists.midrange.com/mailman/listinfo/web400
31.
http://archive.midrange.com/web400
32.
http://lists.midrange.com/mailman/listinfo/web400
33.
http://archive.midrange.com/web400
34.
http://lists.midrange.com/mailman/listinfo/web400
35.
http://archive.midrange.com/web400
36.
http://lists.midrange.com/mailman/listinfo/web400
37.
http://archive.midrange.com/web400
38. mailto:web400-bounces@xxxxxxxxxxxx
39.
http://archive.midrange.com/web400/201004/msg00096.html
40. mailto:web400-bounces@xxxxxxxxxxxx
41. mailto:web400-bounces@xxxxxxxxxxxx
42. mailto:web400-bounces@xxxxxxxxxxxx
43. mailto:web400-bounces@xxxxxxxxxxxx
44. mailto:web400-bounces@xxxxxxxxxxxx
45.
http://lists.midrange.com/mailman/listinfo/web400
46.
http://archive.midrange.com/web400
47.
http://lists.midrange.com/mailman/listinfo/web400
48.
http://archive.midrange.com/web400
49.
http://lists.midrange.com/mailman/listinfo/web400
50.
http://archive.midrange.com/web400
51.
http://lists.midrange.com/mailman/listinfo/web400
52.
http://archive.midrange.com/web400
53.
http://lists.midrange.com/mailman/listinfo/web400
54.
http://archive.midrange.com/web400
55. mailto:web400-bounces@xxxxxxxxxxxx
56. mailto:web400-bounces@xxxxxxxxxxxx
57. mailto:web400-bounces@xxxxxxxxxxxx
58. mailto:web400-bounces@xxxxxxxxxxxx
59. mailto:web400-bounces@xxxxxxxxxxxx
60.
http://lists.midrange.com/mailman/listinfo/web400
61.
http://archive.midrange.com/web400
62.
http://lists.midrange.com/mailman/listinfo/web400
63.
http://archive.midrange.com/web400
64.
http://lists.midrange.com/mailman/listinfo/web400
65.
http://archive.midrange.com/web400
66.
http://lists.midrange.com/mailman/listinfo/web400
67.
http://archive.midrange.com/web400
68.
http://lists.midrange.com/mailman/listinfo/web400
69.
http://archive.midrange.com/web400
70.
http://lists.midrange.com/mailman/listinfo/web400
71.
http://archive.midrange.com/web400
72.
http://lists.midrange.com/mailman/listinfo/web400
73.
http://archive.midrange.com/web400
74.
http://lists.midrange.com/mailman/listinfo/web400
75.
http://archive.midrange.com/web400
As an Amazon Associate we earn from qualifying purchases.