|
CallableStatement has a getBytes() method to get the output data as a byte array. You should also change the way you register the output parameter (call it a varbinary instead of a char, for example). CallableStatement is a core part of JDBC so this should be very portable. David Wall AS/400 Toolbox for Java "Joe Pluta" <joepluta@PlutaBrothers.com>@midrange.com on 04/03/2001 10:56:55 PM Please respond to JAVA400-L@midrange.com Sent by: owner-java400-l@midrange.com To: <JAVA400-L@midrange.com> cc: Subject: RE: ProgramCall and ProgramParameter classes Richard: WAY cool. Now, does anybody have any idea how portable this is? Also, is there a way of getting the untranslated EBCDIC byte array out of a parameter? I tend to use data structures as parameters, and so I have to be able to pass untranslated data. Thanks again, Richard, for such a complete example. This is great! Joe > -----Original Message----- > From: owner-java400-l@midrange.com > [mailto:owner-java400-l@midrange.com]On Behalf Of Richard Casey > Sent: Tuesday, April 03, 2001 10:40 PM > To: JAVA400-L@midrange.com > Subject: RE: ProgramCall and ProgramParameter classes > > > Joe, > > Here is an example of calling a stored procedure with two input parameters > and one output parameter (all strings). > > > Connection conn = DriverManager.getConnection(...); > CallableStatement stmt = conn.prepareCall("CALL MYLIB/MYPROG(?,?)"); > // Note - mylib/myprog is the name of the stored procedure, > NOT the name of > the program to be called > stmt.setString(1,inputParm1); > stmt.setString(2,inputParm2); > stmt.registerOutParameter(3, Types.CHAR); > stmt.execute(); > String outputParm1 = stmt.getString(3); > conn.Close(); > > Of course, you'll need to register your JDBC driver and deal with > exceptions. > > > Here is an example of creating the corresponding stored procedure on the > AS/400. You can run this statement on the green screen using STRSQL or you > can run it from Operations Navigator. > > create procedure mylib/myprog > ( in inparm1 char(10), > in inparm2 char(10), > out outparm1 char(10)) > language rpg > external name mylib.myprog > deterministic > parameter style general; > > The language can be COBOL, RPG, RPGLE, CL, or most of the available > high-level languages. The external name is the name of the program to be > called. The stored procedure and external program do not have to have the > same name. If you need to update the definition of your stored procedure, > you will need to delete it first using the following SQL command. > > drop procedure mylib/myprog; > > > Hope this helps. I'm in the learning mode here too so if anybody spots a > problem or a better way to do it, just chime in! > > Richard Casey > > -----Original Message----- > From: owner-java400-l@midrange.com > [mailto:owner-java400-l@midrange.com]On Behalf Of Joe Pluta > Sent: Tuesday, April 03, 2001 6:52 PM > To: JAVA400-L@midrange.com > Subject: RE: ProgramCall and ProgramParameter classes > > > Actually, Bruce, I haven't done that much with JDBC procedure > calls. Do you > have an example of a simple program call? I don't need much - I > simply pass > a single parameter back and forth between Java and my RPG > program, so if you > have an example program, I'd love to see it. > > Joe > > > > -----Original Message----- > > From: owner-java400-l@midrange.com > > [mailto:owner-java400-l@midrange.com]On Behalf Of Bruce Jin > > Sent: Tuesday, April 03, 2001 2:19 PM > > To: JAVA400-L@midrange.com > > Subject: Re: ProgramCall and ProgramParameter classes > > > > > > Eric thanks for the info. > > > > I tried a few jdbc procedure calls and it appears that this approach is > > quite handy to use in calling RPG, CL etc. I wonder why one should use > > Toolbox. > > > > I found that: > > > > 1. JNI offers superb performance but it is not easy to use and > it does not > > work with existing AS400 programs. > > 2. ToolBox is not very easy to use. > > 3. PCML is not easy to use. > > 4. JDBC procedure call is very easy to use. And one does not have to use > > jt400.zip file. > > > > Any comments anybody? > > > > Thanks > > Bruce > > > > -----Original Message----- > > From: Eric Merritt <cyberlync@yahoo.com> > > To: JAVA400-L@midrange.com <JAVA400-L@midrange.com> > > Date: Friday, March 30, 2001 2:36 PM > > Subject: Re: ProgramCall and ProgramParameter classes > > > > > > >Bruce, > > > > > > The sun JDBC trail provides a little information at > > >http://java.sun.com/docs/books/tutorial/jdbc/basics/sql.html > > > > > >and a little more here > > > > > >http://developer.java.sun.com/developer/onlineTraining/Database/J > > DBC20Intro > > /JDBC20.html#JDBC2013 > > > > > >as for setting up an RPG program as a stored procedure > > >your will probably have to check one of the redbooks > > >for that. > > > > > > > > >--- Bruce Jin <brucej@mrc-productivity.com> wrote: > > >> Eric could you provide a few resources (or links) on > > >> using JDBC stored > > >> procedures call? > > >> > > >> Thanks. > > >> Bruce > > >> > > >> -----Original Message----- > > >> From: Eric Merritt <cyberlync@yahoo.com> > > >> To: JAVA400-L@midrange.com <JAVA400-L@midrange.com> > > >> Date: Friday, March 30, 2001 11:11 AM > > >> Subject: Re: ProgramCall and ProgramParameter > > >> classes > > >> > > >> > > >> >Robert, > > >> > > > >> > If I might be so bold, Program calls using the > > >> >AS/400 tool box can tend to be a little slow. I > > >> always > > >> >suggest you bundle up your native programs on the > > >> 400 > > >> >as SQL stored procedures and call them via JDBC. > > >> Then > > >> >not only do you get a little faster resonse, you > > >> get > > >> >an open service that is callable by any program > > >> >includeing Java. (And you get to remain platform > > >> >independant) > > >> > > > >> >--- Robert Upshall <rupshall@hotmail.com> wrote: > > >> >> Hi, > > >> >> > > >> >> I am attempting to convert my code to use > > >> >> ProgramCall instead of > > >> >> CommandCall, the command call worked fine now we > > >> >> need to pass values back so > > >> >> we will need to take advantage of > > >> ProgramParameter > > >> >> class. > > >> >> > > >> >> Could somebody tell me how I would convert the > > >> >> CommandCall code below into > > >> >> ProgramCall. > > >> >> > > >> >> // start code snipet > > >> >> /* > > >> >> CommandCall cmd = new CommandCall(srvb); > > >> >> > > >> >> // run the command > > >> >> cmd.run( > > >> >> "CALL GBTINET/GCPLIINET PARM('" > > >> >> + pGroup > > >> >> + "' '" > > >> >> + pSin > > >> >> + "' '" > > >> >> + pClass > > >> >> + "' '" > > >> >> + pTypKey > > >> >> + "')"); > > >> >> > > >> >> // get the message list which contains the result > > >> of > > >> >> the command. > > >> >> AS400Message[] messageList = > > >> cmd.getMessageList(); > > >> >> */ > > >> >> // end code snipet > > >> >> > > >> >> > > >> >> Thanks in advance for any help > > >> >> > > >> >> Robert > > >> >> > > >> > > >>________________________________________________________________ > > _________ > > >> >> Get Your Private, Free E-mail from MSN Hotmail at > > >> >> http://www.hotmail.com. > > >> >> > > >> >> +--- > > >> >> | This is the JAVA/400 Mailing List! > > >> >> | To submit a new message, send your mail to > > >> >> JAVA400-L@midrange.com. > > >> >> | To subscribe to this list send email to > > >> >> JAVA400-L-SUB@midrange.com. > > >> >> | To unsubscribe from this list send email to > > >> >> JAVA400-L-UNSUB@midrange.com. > > >> >> | Questions should be directed to the list owner: > > >> >> joe@zappie.net > > >> >> +--- > > >> > > > >> > > > >> >===== > > >> >Eric Merritt > > >> >Information Systems Consultant > > >> >McCormack & Associates, Inc. > > >> >Rock Hill, South Carolina > > >> >(V) 803-327-3358 X 225 > > >> >eric@mccinc.com > > >> >http://www.mccinc.com/ > > >> > > > >> >__________________________________________________ > > >> >Do You Yahoo!? > > >> >Get email at your own domain with Yahoo! Mail. > > >> >http://personal.mail.yahoo.com/?.refer=text > > >> >+--- > > >> >| This is the JAVA/400 Mailing List! > > >> >| To submit a new message, send your mail to > > >> JAVA400-L@midrange.com. > > >> >| To subscribe to this list send email to > > >> JAVA400-L-SUB@midrange.com. > > >> >| To unsubscribe from this list send email to > > >> JAVA400-L-UNSUB@midrange.com. > > >> >| Questions should be directed to the list owner: > > >> joe@zappie.net > > >> >+--- > > >> > > >> +--- > > >> | This is the JAVA/400 Mailing List! > > >> | To submit a new message, send your mail to > > >> JAVA400-L@midrange.com. > > >> | To subscribe to this list send email to > > >> JAVA400-L-SUB@midrange.com. > > >> | To unsubscribe from this list send email to > > >> JAVA400-L-UNSUB@midrange.com. > > >> | Questions should be directed to the list owner: > > >> joe@zappie.net > > >> +--- > > > > > > > > >===== > > >Eric Merritt > > >Information Systems Consultant > > >McCormack & Associates, Inc. > > >Rock Hill, South Carolina > > >(V) 803-327-3358 X 225 > > >eric@mccinc.com > > >http://www.mccinc.com/ > > > > > >__________________________________________________ > > >Do You Yahoo!? > > >Get email at your own domain with Yahoo! Mail. > > >http://personal.mail.yahoo.com/?.refer=text > > >+--- > > >| This is the JAVA/400 Mailing List! > > >| To submit a new message, send your mail to JAVA400-L@midrange.com. > > >| To subscribe to this list send email to JAVA400-L-SUB@midrange.com. > > >| To unsubscribe from this list send email to > > JAVA400-L-UNSUB@midrange.com. > > >| Questions should be directed to the list owner: joe@zappie.net > > >+--- > > > > +--- > > | This is the JAVA/400 Mailing List! > > | To submit a new message, send your mail to JAVA400-L@midrange.com. > > | To subscribe to this list send email to JAVA400-L-SUB@midrange.com. > > | To unsubscribe from this list send email to > > JAVA400-L-UNSUB@midrange.com. > > | Questions should be directed to the list owner: joe@zappie.net > > +--- > > > > +--- > | This is the JAVA/400 Mailing List! > | To submit a new message, send your mail to JAVA400-L@midrange.com. > | To subscribe to this list send email to JAVA400-L-SUB@midrange.com. > | To unsubscribe from this list send email to > JAVA400-L-UNSUB@midrange.com. > | Questions should be directed to the list owner: joe@zappie.net > +--- > > > +--- > | This is the JAVA/400 Mailing List! > | To submit a new message, send your mail to JAVA400-L@midrange.com. > | To subscribe to this list send email to JAVA400-L-SUB@midrange.com. > | To unsubscribe from this list send email to > JAVA400-L-UNSUB@midrange.com. > | Questions should be directed to the list owner: joe@zappie.net > +--- > +--- | This is the JAVA/400 Mailing List! | To submit a new message, send your mail to JAVA400-L@midrange.com. | To subscribe to this list send email to JAVA400-L-SUB@midrange.com. | To unsubscribe from this list send email to JAVA400-L-UNSUB@midrange.com. | Questions should be directed to the list owner: joe@zappie.net +--- +--- | This is the JAVA/400 Mailing List! | To submit a new message, send your mail to JAVA400-L@midrange.com. | To subscribe to this list send email to JAVA400-L-SUB@midrange.com. | To unsubscribe from this list send email to JAVA400-L-UNSUB@midrange.com. | Questions should be directed to the list owner: joe@zappie.net +---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 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.