Sure,  see my comments through the following....

I just added a check to see if the database was oracle

if
(conn.getMetaData().getDatabaseProductName().equalsIgnoreCase("Oracle"))
      {

And if it is, then don't do a query, do an execute....

 boolean b = cs.execute();

 errorContext.setMoreInfo("In Oracle query mode.");
 errorContext.setMoreInfo("Check the output parameters
 (retrieval of output parameters failed).");

Grab the output parameters, and find the one that's a resultset.

 retrieveOutputParameters(cs, mappings, parameters);

 for (int i=0;i<parameters.length;i++)
 {
 if (parameters[i] instanceof ResultSet)
 {
 rs = (ResultSet) parameters[i];
 break;
 }
 }


Then perform handle results...

 errorContext.setMoreInfo("Check the results (failed to
 retrieve results).");
 handleResults(request, rs, skipResults, maxResults, callback);
 }

Otherwise, just do the traditional executeQuery.

 else
 {
 errorContext.setMoreInfo("In non-Oracle mode.");
 rs = cs.executeQuery();

 errorContext.setMoreInfo("Check the results (failed to retrieve
 results).");
 handleResults(request, rs, skipResults, maxResults, callback);

 errorContext.setMoreInfo("Check the output parameters (retrieval
 of output parameters failed).");
 retrieveOutputParameters(cs, mappings, parameters);
 }
 } finally {
 try {
 closeResultSet(rs);
 } finally {
 closeStatement(cs);
 }
 }

If you need anything more let me know, thanks.

Clinton Begin wrote:

Could you explain more clearly what you changed?

Clinton




Reply via email to