Marco,

I ran your test program against my SAP database and it failed. I'm
sending you the code I ran (I just modified inputs for database). I'm
also sending you JDBC-trace file (DBProcResult.txt). Any ideas?

Thanks, Peter

-----Original Message-----
From: Paskamp, Marco [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, June 12, 2002 1:59 AM
To: 'Peter Vilim'; [EMAIL PROTECTED]
Subject: RE: NullPointerException after retrieving resultset from stored
procedure

Hello Peter,
please don't use the modified driver for retrieving resultsets from
dbprocedures. The patch will only work in some special cases.  When your
database kernel version is 7.3.0.24 you should use the current available
jdbc driver at: ftp://ftp.sap.com/pub/sapdb/bin/java/sapdbc.jar. I've
written a small testprogram using the sample code from your mail. This
program works proper with the current jdbc-driver. The testprogram is
attached to this mail. Please tryout the current driver  and have a look
to
the testprogram. If it doesn't work send me the traces (jdbc, vtrace).

Regards,
Marco

> -----Original Message-----
> From: Peter Vilim [mailto:[EMAIL PROTECTED]]
> Sent: Dienstag, 11. Juni 2002 19:43
> To: Paskamp, Marco; [EMAIL PROTECTED]
> Subject: RE: NullPointerException after retrieving resultset 
> from stored
> procedure
> 
> 
> Marco,
> 
> I checked the database kernel and it is 7.3.0.24
> 
> The problem is actually a little bit more complex. The 
> application that
> we have created works fine in one instance (running SAPDB, 
> Apache Tomcat
> 4.01, Windows XP). However, for some reason it does not work on mine
> (also WinXP, Apache Tomcat 4.01, SAPDB). 
> 
> When we were installing the application on my machine, we 
> have restored
> a backup copy of the working application and directly copied the Java
> application to my computer. What's strange is the fact that the
> application does not work when connected to my (local) SAP database.
> However, it works fine when the app connects to the original SAP
> database.
> 
> We are using a modified JDBC driver
> (http://listserv.sap.com/pipermail/sapdb.general/2002-April/01
> 1472.html)
> because none of the drivers that we found on your website were able to
> call stored procedures and also retrieve a resultset from these stored
> procedures. As a matter of fact, the stored procs that do not work on
> some instances of SAP DB should return a resultset, but they do not.
> 
> From the symptoms above, I am guessing that there is something wrong
> with our restore procedure or the installation of the database. Please
> let me know if you can help me from these notes, otherwise 
> I'll send you
> JDBC-trace and VTrace
> 
> Peter
> 
> -----Original Message-----
> From: Paskamp, Marco [mailto:[EMAIL PROTECTED]] 
> Sent: Tuesday, June 11, 2002 9:30 AM
> To: 'Peter Vilim'; [EMAIL PROTECTED]
> Subject: RE: NullPointerException after retrieving resultset 
> from stored
> procedure
> 
> Hello,
> are you sure that the version of your JDBC-driver and your database
> kernel
> (!!!) is >= 7.3.0.24. DBProcedures with resultsets and jdbc will only
> work
> with the newest available version. If you use the newest version
> (database
> kernel and jdbc) please send me a JDBC-trace(
> http://sapdb.2scale.net/moin.cgi/JdbcTrace ) and if possible a vtrace
> http://sapdb.2scale.net/moin.cgi/VTrace).  
> 
> Regards,
> Marco
> ----------------------------------------------
> Marco PASKAMP
> SAP DB, SAP Labs Berlin
> 
> > -----Original Message-----
> > From: Paskamp, Marco 
> > Sent: Dienstag, 11. Juni 2002 16:18
> > To: Paskamp, Marco
> > Subject: FW: NullPointerException after retrieving resultset 
> > from stored
> > procedure
> > 
> > 
> > 
> > -----Original Message-----
> > From: Peter Vilim [mailto:[EMAIL PROTECTED]]
> > Sent: Dienstag, 11. Juni 2002 16:07
> > To: [EMAIL PROTECTED]
> > Subject: NullPointerException after retrieving resultset from 
> > stored procedure
> > 
> > 
> > Hi all,
> >  
> > I'm using the latest JDBC driver for working with SAPDB. 
> > After calling stored procedure from Java code I get 
> > NullPointerException error. There is how my code, stored 
> > procedure and error message look like. Do you have any ideas?
> >  
> > Stored procedure:
> > CREATE DBPROC SP_COMPANY_EDIT (IN COMPANY_ID INT) RETURNS CURSOR AS
> > BEGIN
> > SET $CURSOR = 'MYCURSOR';
> > DECLARE :$CURSOR CURSOR FOR SELECT * FROM DBA.COMPANY  WHERE 
> > COMPANY_ID = :COMPANY_ID;
> > END;
> >  
> > Java code:
> > cstmt = m_conDb.prepareCall("{call SP_COMPANY_EDIT (?)}");
> > cstmt.setString(1,sCompanyId);
> > cstmt.execute();
> > rs= cstmt.getResultSet();
> > rs.next();
> > CompanyListBean clbObj = new CompanyListBean();
> > clbObj = getListBean (rs);
> >  
> > Error Code:
> > java.lang.NullPointerException
> >         at 
> > com.synfoserv.actions.CompanyAction.companyEdit(CompanyAction.
> > java:357)
> >         at 
> > com.synfoserv.actions.CompanyAction.perform(CompanyAction.java:52)
> >         at 
> > com.synfoserv.actions.ActionServlet.service(ActionServlet.java:77)
> >         at 
> > javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> >         at 
> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
> > er(ApplicationFilterChain.java:247)
> >         at 
> > org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
> > cationFilterChain.java:193)
> >         at 
> > org.apache.catalina.core.StandardWrapperValve.invoke(StandardW
> > rapperValve.java:243)
> >         at 
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:566)
> >         at 
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> > ine.java:472)
> >         at 
> > 
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> >         at 
> > org.apache.catalina.core.StandardContextValve.invoke(StandardC
> > ontextValve.java:201)
> >         at 
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:566)
> >         at 
> > org.apache.catalina.valves.CertificatesValve.invoke(Certificat
> > esValve.java:246)
> >         at 
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:564)
> >         at 
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> > ine.java:472)
> >         at 
> > 
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> >         at 
> > org.apache.catalina.core.StandardContext.invoke(StandardContex
> > t.java:2344)
> >         at 
> > org.apache.catalina.core.StandardHostValve.invoke(StandardHost
> > Valve.java:164)
> >         at 
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:566)
> >         at 
> > org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDi
> > spatcherValve.java:170)
> >         at 
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:564)
> >         at 
> > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport
> > Valve.java:170)
> >         at 
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:564)
> >         at 
> > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValv
> > e.java:462)
> >         at 
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:564)
> >         at 
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> > ine.java:472)
> >         at 
> > 
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> >         at 
> > org.apache.catalina.core.StandardEngineValve.invoke(StandardEn
> > gineValve.java:163)
> >         at 
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:566)
> >         at 
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> > ine.java:472)
> >         at 
> > 
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> >         at 
> > org.apache.catalina.connector.http.HttpProcessor.process(HttpP
> > rocessor.java:1011)
> >         at 
> > org.apache.catalina.connector.http.HttpProcessor.run(HttpProce
> > ssor.java:1106)
> >         at java.lang.Thread.run(Thread.java:536)
> >  
> >  
> > Peter Vilim
> > Application Engineer
> > Synergy Information Services, Inc.
> >  Email: [EMAIL PROTECTED]
> > 
> 

Attachment: DBProcResult.java
Description: Binary data


---- Thread e5e2c3 main
==================================
package com.sap.dbtech.jdbc, "SAP DB JDBC Driver", "SAP AG", "7.3.0    Build 
023-000-085-131" on Java 1.4.0-rc
new Connection 'jdbc:sapdb://localhost/IndeoCRM>'
Connection(ef90c)::createStatement ()
 <-createStatement: com.sap.dbtech.jdbc.StatementSapDB@fa3ac1
Statement(de3f2d)::executeUpdate (drop dbprocedure DBProcResult)
 <-!
com.sap.dbtech.jdbc.exceptions.DatabaseException: SAP DBTech SQL: [-4016] (at 18) 
Message not available
        at com.sap.dbtech.jdbc.packet.ReplyPacket.createException(ReplyPacket.java:51)
        at com.sap.dbtech.jdbc.ConnectionSapDB.throwSQLError(ConnectionSapDB.java:656)
        at com.sap.dbtech.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:338)
        at com.sap.dbtech.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:273)
        at com.sap.dbtech.jdbc.StatementSapDB.sendCommand(StatementSapDB.java:578)
        at com.sap.dbtech.jdbc.StatementSapDB.sendSQL(StatementSapDB.java:619)
        at com.sap.dbtech.jdbc.StatementSapDB.execute(StatementSapDB.java:172)
        at com.sap.dbtech.jdbc.StatementSapDB.executeUpdate(StatementSapDB.java:323)
        at com.sap.dbtech.jdbc.trace.Statement.executeUpdate(Statement.java:204)
        at DBProcResult.<init>(DBProcResult.java:25)
        at DBProcResult.main(DBProcResult.java:6)
Statement(de3f2d)::executeUpdate (CREATE DBPROC DBProcResult (IN COMPANY_ID INT) 
RETURNS CURSOR AS BEGIN SET $CURSOR = 'MYCURSOR'; DECLARE :$CURSOR CURSOR FOR SELECT * 
FROM SUPERDBA.DUAL  WHERE  :COMPANY_ID = :COMPANY_ID; END; )
 <-!
com.sap.dbtech.jdbc.exceptions.DatabaseException: SAP DBTech SQL: [-4004] (at 133) 
Message not available:DUAL
        at com.sap.dbtech.jdbc.packet.ReplyPacket.createException(ReplyPacket.java:51)
        at com.sap.dbtech.jdbc.ConnectionSapDB.throwSQLError(ConnectionSapDB.java:656)
        at com.sap.dbtech.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:338)
        at com.sap.dbtech.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:273)
        at com.sap.dbtech.jdbc.StatementSapDB.sendCommand(StatementSapDB.java:578)
        at com.sap.dbtech.jdbc.StatementSapDB.sendSQL(StatementSapDB.java:619)
        at com.sap.dbtech.jdbc.StatementSapDB.execute(StatementSapDB.java:172)
        at com.sap.dbtech.jdbc.StatementSapDB.executeUpdate(StatementSapDB.java:323)
        at com.sap.dbtech.jdbc.trace.Statement.executeUpdate(Statement.java:204)
        at DBProcResult.<init>(DBProcResult.java:31)
        at DBProcResult.main(DBProcResult.java:6)

Reply via email to