Results 1 to 2 of 2
  1. #1
    Join Date
    Jan 2002

    Question Unanswered: MS JDBC Driver for SQL - Problem with OUT parameters

    Hi !

    I need to call a stored procedure on a MS SQL 2000 server and get the output parameter of the stored procedure. The code is:

    CallableStatement cst = con.prepareCall("{call mysp(?,?,?)}");
    cst.registerOutParameter(1, Types.INTEGER);
    cst.setString(3, "world");
    ResultSet rs = cst.executeQuery();
    System.out.println("Out param = " + cst.getInt(1));

    This produces the exception
    "The requested data is not available"

    How do I retrieve the output parameter ? The Stored Procedure is fine and when run using SQL Query Analyzer works fine !! But gives the above exception when executing it from a Java Application !!! What am i doing wrong ??

  2. #2
    Join Date
    Jan 2002

    Cool Solution to problem !!

    Hi !!

    I've solved the problem with OUT parameters !! 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

    - madhan

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts