Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2000 Forums
 SQL Server Development (2000)
 MS SQL 2000 JDBC driver

Author  Topic 

Rajeswari
Starting Member

20 Posts

Posted - 2002-01-16 : 07:16:45
Hello,

I am using the MS SQL 2000 JDBC driver from microsoft to connect to a SQL2000 DB. The connections work fine but when I try to call a stored procedure which has OUTPUT parameters I get an exception. Here is the code snippet:

CallableStatement stmt = con.prepareCall("{(call mysp(?))}");
stmt.registerOutParameter(1, java.sql.Types.INTEGER);
ResultSet rs = stmt.executeQuery();
int out = stmt.getInt(1);

Here in the last line I get an "The requested data is not available" exception.

Any suggestions ?

Thanks !

Rajeswari
Starting Member

20 Posts

Posted - 2002-01-17 : 02:23:24
Hi !!

I've solved the problem with OUT parameters :p !! This seems to be a problem with the ODBC stack of Microsoft !! Problem does not arise with other drivers !! This problem arises not only with the ODBC-JDBC driver but with apps like Visual Basic, VC++, etc with use MS ODBC stack !!

The solution:

Do not return Resultsets with OUTPUT parameters !! This does not work. The solution is to split the stored procedures into two procedures, one returning the OUTPUT parameter (if required) and another returning the resultset. Another workaround would be to include the OUTPUT parameter as another Column in the Resultset !! MS ODBC, JDBC client drivers do NOT allow you to return OUTPUT parameters with resultsets !! If you return either one of them alone no problem comes !!

Hope this helps you people out there facing the same problem ;)

- rajeswari

Go to Top of Page
   

- Advertisement -